Commit Graph

15598 Commits

Author SHA1 Message Date
Pierre-Yves David
1fd5692284 phases: add a function to compute visible heads
This function will be used to hide secret changeset.
2011-12-19 11:37:44 +01:00
Pierre-Yves David
3d9a6a91e3 phases: Add a third phase for secret changeset 2011-12-18 23:16:46 +01:00
Pierre-Yves David
d7a17ef9c1 phases: fix advanceboundary behavior when targetphase !=0
Changeset was properly removed from upper phase but was not explicitly added to
target phase. If advanced changesets had not pwasnt in target phase they was
considered public (0-phase).
2011-12-19 11:29:39 +01:00
Pierre-Yves David
6284fc8c91 phases: add a bit more test for local phase movement. 2011-12-18 23:15:12 +01:00
Matt Mackall
4ee9450bf7 merge with stable 2011-12-19 14:04:33 -06:00
Matt Mackall
952107b8ae merge with i18n 2011-12-19 14:04:26 -06:00
Matt Mackall
e996adc45c merge with i18n 2011-12-19 14:04:09 -06:00
Martin Schröder
67b13dcfb8 i18n-de: several new translations 2011-12-19 13:02:30 +01:00
Matt Mackall
7cf4e6eacb merge with stable 2011-12-16 19:05:59 -06:00
Wagner Bruna
9ee7384a84 merge with i18n stable 2011-12-16 10:47:17 -02:00
Wagner Bruna
a06c171c9c merge with i18n 2011-12-16 10:44:08 -02:00
Wagner Bruna
ccd491a91c i18n-pt_BR: synchronized with de6501d18b23 2011-12-16 10:43:18 -02:00
FUJIWARA Katsunori
1a00d3603f merge: check filename case collision between changesets for branch merging
this patch makes branch merging abort when merged changesets have same
file in different case on case insensitive filesystem.

this patch does not prevent linear update which merges between target
and working contexts, because 'branchmerge' is False in such case.
2011-12-16 21:21:27 +09:00
FUJIWARA Katsunori
fe972435d4 i18n: use encoding.lower/upper for encoding aware case folding
this patch uses encoding.lower/upper for case folding, because ones of
str can not fold case of non ascii characters correctly.

to avoid cyclic dependency and to encapsulate logic of normcase in
each platforms, this patch introduces encodinglower/encodingupper in
both posix/windows specific files.

this patch does not change implementation of normcase() in posix.py,
because we do not know the encoding of filenames on POSIX.

some "normcase()" are excluded from function wrap list in
hgext/win32mbcs.py, because they become encoding aware by this patch.
2011-12-16 21:09:41 +09:00
FUJIWARA Katsunori
cfdf6a59f4 windows: use upper() instead of lower() or os.path.normcase()
this patch uses upper() instead of lower() or os.path.normcase() for
case folding on Windows(NTFS), because lower-ing causes problems for
some languages on it.

see below for detail about problem of lower-ing:

    https://blogs.msdn.com/b/michkap/archive/2005/01/16/353873.aspx
2011-12-16 21:09:40 +09:00
FUJIWARA Katsunori
055136813d icasefs: avoid normcase()-ing in util.fspath() for efficiency
'dirstate._normalize()', the only caller of 'util.fspath()', has
already normcase()-ed path before invocation of it.

normcase()-ed root can be cached on dirstate side, too.

so, this patch changes 'util.fspath()' API specification to avoid
normcase()-ing in it.
2011-12-16 21:09:40 +09:00
FUJIWARA Katsunori
c71595845e icasefs: use util.normcase() instead of lower() or os.path.normcase in fspath
this also avoids lower()-ing on each path components by reuse the path
normcase()-ed at beginning of function.
2011-12-16 21:09:40 +09:00
FUJIWARA Katsunori
167dff84e5 dirstate: prevent useless util.fspath() invocation for '.'
at first of dirstate.walk() on case insensitive filesystem,
normalization of '.' causes util.fspath() invocation, but '.' is not
cached in it.

this invocation is not only useless, but also harmful: initial "hg
tag" causes creation of ".hgtags" file after dirstate.walk(), and
looking up ".hgtags" in cache will fail, because directory contents of
root is already cached at util.fspath() invocation for '.'.
2011-12-16 21:09:40 +09:00
FUJIWARA Katsunori
f9ca02bd18 icasefs: consider as case sensitive if there is no counterevidence, for safety
for safety, this patch prevents case-less name from misleading into
case insensitivity, even though such names should not be used.
2011-12-16 21:09:40 +09:00
FUJIWARA Katsunori
44af3b0ebf pathauditor: switch normcase logic according to case sensitivity of filesystem
this patch applies 'util.normcase()' to audit path only on case
insensitive filesystem.
2011-12-16 21:09:40 +09:00
FUJIWARA Katsunori
6b07b41e4f pathauditor: preserve case in abort messages
this patch uses both plain and normcase()-ed pathes to preserve letter
case of path in abort messages.
2011-12-16 21:09:40 +09:00
FUJIWARA Katsunori
afdb157d48 pathauditor: use normcase()-ed path for audit result cache
in current pathauditor implementation, un-normcase()-ed path is
stored into and compared with audit result cache.

this is not efficiency on case insensitive filesystem.
2011-12-16 21:09:40 +09:00
Alexander Sauta
c2644640e6 i18n-ru: translated purge, progress, rebase 2011-12-16 10:13:46 +03:00
Matt Mackall
ee2f119c93 merge with stable 2011-12-15 16:50:21 -06:00
Pierre-Yves David
f9b3764a1f phases: change publish behavior to only alter behavior when server.
Older publish=True was:

  1) Content of Publishing server are seen as public by client.
  2) Any changegroup *added* to a publish=True server is public.

New definition are:

  1) Content of Publishing server are seen as public by client.
  2) Any changegroup *pushed* to a publish=True server is public.

See mercurial/phase.py documentation for exact final behavior
2011-12-15 23:08:09 +01:00
Matt Mackall
9f8ee10163 util: don't mess with builtins to emulate buffer() 2011-12-15 15:27:11 -06:00
Matt Mackall
49b0ffe198 util: clean up function ordering 2011-12-15 14:59:22 -06:00
Matt Mackall
03f5247248 merge with stable 2011-12-15 14:37:36 -06:00
Kevin Gessner
edef96f084 largefiles: don't require a user cache (issue3088) (issue3155)
If the user cache path isn't specified in .hgrc, and it can't be constructed
from the environment, don't try to use that cache.
2011-12-15 13:19:43 -05:00
Nikolaus Schueler
efb688abc6 notify: change behavior of "changegroup" hook
Change the behavior so that the sender (the "From" header in the notification
mail) in case of the "changegroup" hook is the user that did the first commit
in the changegroup.  The option is configurable, if you set "notify.fromauthor"
to "True" in your config, the new behavior is activated.  If you do not set the
option, the behavior is as before.  The commit adds to an existing test to show
various aspects of the changed behavior.
2011-12-15 13:57:54 +01:00
Na'Tosha Bard
112b1abe18 largefiles: optimize status when files are specified (issue3144)
This fixes a performance issue with 'hg status' when files are specified
on the command-line.  Previously, a large amount of largefiles code was
executed, even if files were specified on the command-line and those files
were not largefiles.  This patch fixes the problem by first checking if
non-largefiles were specified on the command-line and, just letting the
normal status function handle the case if they were.

On a brand new machine, the execution time for 'hg status filename' on
a repository with largefiles was:

real    0m0.636s
user    0m0.512s
sys     0m0.120s

versus the following (the same repository, with largefiles disabled):

real    0m0.215s
user    0m0.180s
sys     0m0.032s

After this patch, the performance of 'hg status filename' on the same
repository, with largefiles enabled is:

real    0m0.228s
user    0m0.189s
sys     0m0.036s

This performance boost is also true when patterns (rather than specific
files) are specified on the command-line.

In the case where patterns are specified in addition to a file list, we
just defer to the normal codepath in order to not spend extra time
expanding the patterns to just risk having to expand them again later.
2011-12-15 16:23:26 +01:00
Andrei Polushin
e66f44a7ee i18n-ru: editing for 'push' and 'pull' 2011-12-14 02:27:55 +07:00
Andrei Polushin
cca36141de i18n-ru: editing for 'commit' 2011-12-14 01:56:57 +07:00
Andrei Polushin
12c2bed972 i18n-ru: editing for 'directory' 2011-12-14 00:48:54 +07:00
Andrei Polushin
6a90ff298b i18n-ru: editing for 'remote' 2011-12-14 00:43:31 +07:00
Andrei Polushin
514ae16230 i18n-ru: editing for 'repository' 2011-12-13 22:55:43 +07:00
Andrei Polushin
537dadc794 i18n-ru: editing for 'store' (largefiles concept) 2011-12-13 01:51:08 +07:00
Andrei Polushin
71c20efdeb i18n-ru: editing for 'branch' 2011-12-13 01:40:30 +07:00
Andrei Polushin
9d94cf9fb1 i18n-ru: spellcheck 2011-12-13 01:11:46 +07:00
Pierre-Yves David
3f5fbfb66a wireproto: handle other server output in pushkey
Remote side may add useful information alongside failure return code. For
example "ssl is required". This patch mirror what is done for the unbundle
command.
2011-12-12 15:16:58 +01:00
Pierre-Yves David
0d9927b223 phases: exchange phase boundaries on push
For now phase sync is tried even if push fails with some know pathological
case. The exact behavior is to be discussed and implemented later.
2011-12-15 11:45:01 +01:00
Pierre-Yves David
c8f1983f55 phases: exchange phase boundaries on pull
Add an extra argument to addchangegroup to all phase code to execute before the
lock is released.
2011-12-15 11:28:42 +01:00
Pierre-Yves David
28f802f934 phases: add a function to compute heads from root 2011-12-15 02:18:24 +01:00
Pierre-Yves David
a6373d74dc phases: add basic pushkey support 2011-12-15 11:24:26 +01:00
FUJIWARA Katsunori
ee602b5c96 icasefs: use util.normcase() instead of str.lower() or os.path.normpath() 2011-12-12 17:10:19 +09:00
Martin Geisler
54d4706f56 test-subrepo: test for Issue3153 2011-12-15 16:18:10 +01:00
Renato Cunha
cb456a1751 diff: don't crash when diffing a revision with a deleted subrepo (issue3153)
When a user requested a diff between a revision (r1) that contained a subrepo
and another (r2) that did not, mercurial would crash if r1 was specified before
r2 but would execute the diff otherwise. This fixes this behavior by skipping
the missing subrepo in the diff.
2011-12-14 12:28:00 -02:00
Martin Geisler
034d08dce7 status: add missing ":" to help text 2011-12-15 11:13:38 +01:00
Alexander Sauta
403363b6fa i18n-ru: glossary synchronized with wiki, still requires fixing 2011-12-12 00:03:26 +03:00
Alexander Sauta
30e3531b19 i18n-ru: mq translated 2011-12-11 23:28:57 +03:00