Kevin Bullock <kbullock@ringworld.org> [Wed, 15 May 2013 21:36:19 -0500] rev 19198
i18n: fix untranslated prompts with translated responses (issue3936)
Mike Williams <mrw@eandem.co.uk> [Wed, 15 May 2013 22:19:12 +0100] rev 19197
help: stop documentation markup appearing in generated help
Markup for links to mercurial commands is appearing in the help
documentation.
This patch fixes the markup so mercurial command reference links are
correctly generated in the help documentation.
Matt Mackall <mpm@selenic.com> [Tue, 14 May 2013 18:52:52 -0500] rev 19196
merge with stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 14 May 2013 15:16:44 -0700] rev 19195
ui: use util.sizetoint in configbytes
Bryan O'Sullivan <bryano@fb.com> [Tue, 14 May 2013 15:16:43 -0700] rev 19194
util: migrate fileset._sizetoint to util.sizetoint
The size counting code introduced in 2c4cd1c42365 duplicated existing
(but unknown-to-me) code in fileset, so prepare to eliminate the
duplication.
Matt Mackall <mpm@selenic.com> [Tue, 14 May 2013 18:43:53 -0500] rev 19193
Added signature for changeset ddc7a6be2021
Matt Mackall <mpm@selenic.com> [Tue, 14 May 2013 18:43:43 -0500] rev 19192
Added tag 2.6.1 for changeset ddc7a6be2021
Siddharth Agarwal <sid0@fb.com> [Tue, 23 Apr 2013 14:16:33 -0700] rev 19191
dirstate.status: avoid full walks when possible
Siddharth Agarwal <sid0@fb.com> [Mon, 22 Apr 2013 17:11:18 -0700] rev 19190
dirstate.walk: add a flag to let extensions avoid full walks
Consider a hypothetical extension that implements walk in a more efficient
manner and skips some known-clean files. However, that can only be done under
some situations, such as when clean files are not being asked for and a
match.traversedir callback is not set. The full flag lets walk tell these two
cases apart.
Matt Mackall <mpm@selenic.com> [Mon, 13 May 2013 17:47:04 -0500] rev 19189
merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 13 May 2013 17:44:35 -0500] rev 19188
i18n: fix partially-translated prompts (issue3928) (issue3929)
Matt Mackall <mpm@selenic.com> [Mon, 13 May 2013 17:36:06 -0500] rev 19187
merge with i18n
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 10 May 2013 14:39:09 -0300] rev 19186
i18n-pt_BR: synchronized with 27013ace80eb
Matt Mackall <mpm@selenic.com> [Fri, 10 May 2013 11:23:50 -0500] rev 19185
pathencode: grow buffers to increase safety margin
Kevin Bullock <kbullock@ringworld.org> [Mon, 13 May 2013 13:02:01 -0500] rev 19184
merge with stable
Mike Williams <mrw@eandem.co.uk> [Sun, 12 May 2013 10:09:34 +0100] rev 19183
help/config: note 64-bit Windows registry key used with 32-bit Python
Before this patch the only place that documented the use of a different
registry key was on the wiki page for installing on Windows from
sources, while most users will use a pre-packaged installer and the
supplied help files.
This patch documents in the supplied help files that an alternate
registry key is used for the installation/system configuration file when
using 32-bit Python on a 64-bit Windows.
Augie Fackler <raf@durin42.com> [Sat, 11 May 2013 20:25:15 -0500] rev 19182
httpclient: upgrade to fe8c09e4db64 of httpplus
Szymon Wroblewski <bluex0@gmail.com> [Wed, 08 May 2013 20:55:56 +0200] rev 19181
splicemap: support paths with spaces in splicemap (issue3844)
Shlex module was used to split line as suggested. Split operates in POSIX mode.
Yuya Nishihara <yuya@tcha.org> [Tue, 07 May 2013 23:49:03 +0900] rev 19180
branch: strip whitespace before testing known branch name
Because dirstate._branch() strips leading/trailing spaces from .hg/branch,
"hg branch ' foo '" should abort if branch "foo" exists in another head.
tag command had a similar bug and fixed by 3d0a9c8d7184.
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 18:34:04 -0500] rev 19179
merge with stable
Durham Goode <durham@fb.com> [Wed, 01 May 2013 10:44:21 -0700] rev 19178
copies: refactor checkcopies() into a top level method
This moves checkcopies() out of mergecopies() and makes it a top level
function in the copies module. This allows extensions to override it. For
example, I'm developing a filelog replacement that doesn't have rev numbers
so all the rev number dependent implementation here needs to be replaced
by the extension.
No logic is changed in this commit.
Durham Goode <durham@fb.com> [Wed, 08 May 2013 14:22:00 -0700] rev 19177
store: move top file walk to a separate function
Some extensions find it useful to be able to walk the non-data files in the
repo, so I'm moving that part of the walk to a separate function.
In particular, this allows an extension to interact with only the non-filelog
store data (for instance, when cloning everything but filelogs).
Durham Goode <durham@fb.com> [Wed, 01 May 2013 10:38:41 -0700] rev 19176
clone: move file stream walk to a separate function
Moves the file walk out of the stream method so that extensions can override it.
This allows an extension to decide what files should be streamed, and in
particular allows a stream without filelogs.
Siddharth Agarwal <sid0@fb.com> [Tue, 07 May 2013 14:20:34 -0700] rev 19175
dirstate._walkexplicit: inline dirsnotfound.append
Siddharth Agarwal <sid0@fb.com> [Tue, 07 May 2013 14:19:04 -0700] rev 19174
dirstate._walkexplicit: rename work to dirsfound
Now that this code is factored out, work is too specific a name.
Siddharth Agarwal <sid0@fb.com> [Tue, 07 May 2013 10:02:55 -0700] rev 19173
dirstate.walk: refactor explicit walk into separate function
This enables this code to be reused by extensions that implement the other,
more time-consuming bits of walk in different ways.
Siddharth Agarwal <sid0@fb.com> [Tue, 07 May 2013 09:31:00 -0700] rev 19172
dirstate.walk: pull skipstep3 out of the explicit walk code
This is a move towards factoring out this code into a separate function.
Siddharth Agarwal <sid0@fb.com> [Tue, 07 May 2013 09:47:10 -0700] rev 19171
dirstate.walk: move dirignore filter out of explicit walk code
This is a move towards factoring this code out into a separate function.
Siddharth Agarwal <sid0@fb.com> [Tue, 07 May 2013 09:29:43 -0700] rev 19170
dirstate.walk: maintain a list of dirs not found
Upcoming patches will factor out the walk over explicit files done in step 1.
This helps us get there.
Alexander Plavin <me@aplavin.ru> [Fri, 10 May 2013 00:26:39 +0400] rev 19169
highlight: fix page layout with empty first and last lines
Repeated newlines were stripped by pygmentize, now give the option not to do so.
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 15:22:54 -0500] rev 19168
check-code: add another Windows pathsep rule
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 15:22:21 -0500] rev 19167
merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 15:17:29 -0500] rev 19166
tests: quiet strip to avoid commandserver pathsep issue
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 15:09:36 -0500] rev 19165
tests: fix another Windows path issue
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 15:01:11 -0500] rev 19164
tests: fix unionrepo path issue on msys (issue3927)
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 10:51:03 -0500] rev 19163
merge with stable
Takumi IINO <trot.thunder@gmail.com> [Thu, 09 May 2013 11:37:20 +0900] rev 19162
blackbox: fix literal block syntax
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 07 May 2013 05:04:11 +0900] rev 19161
largefiles: check unknown files with case awareness of the filesystem
Before this patch, largefiles extension checks unknown files in the
working directory always case sensitively.
This causes failure in updating from the revision X consisting of
'.hglf/A' (and "A" implicitly) to the revision Y consisting of 'a'
(not ".hglf/A") on case insensitive filesystem, because "A" in the
working directory is treated as colliding against and different from
'a' on the revision Y.
This patch uses "repo.dirstate.normalize()" to check unknown files
with case awareness of the filesystem.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 07 May 2013 05:04:11 +0900] rev 19160
largefiles: check existence of the file with case awareness of the filesystem
Before this patch, largefiles extension always unlinks largefiles
untracked on the target context in merging/updating after updating
working directory.
For example, it is assumed that the revision X consists of ".hglf/A"
(and "A" implicitly) and revision Y consists of "a" (not ".hglf/A").
In the case of updating from X to Y, largefiles extension tries to
unlink "A" after updating "a" in working directory. This causes
unexpected unlinking "a" on the case insensitive filesystem.
This patch checks existence of the file in the working context with
case awareness of the filesystem to prevent from such unexpected
unlinking.
"lfcommands._updatelfile()" also unlinks target file in the case
"largefile is tracked in the target context, but fails to be fetched".
This patch doesn't apply "repo.dirstate.normalize()" in this case,
because it should be already ensured in the manifest merging that
there is no normal file colliding against any largefiles.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 07 May 2013 05:04:11 +0900] rev 19159
windows: check target type before actual unlinking to follow POSIX semantics
Creation and writing into target file via vfs (a.k.a opener) is done
after "unlink()" target file, if it exists.
For example, it is assumed that the revision X consists of file 'A',
and the revision Y consists of file 'A/B'. Merging revision X into Y
tries to "unlink()" on directory 'A' of 'A/B', before creation of file
'A'.
On POSIX environment, directories should be removed by "rmdir(2)", and
"unlink(2)" on directories fails. "unlink()" of Mercurial (and Python)
uses "unlink(2)" directly, so unlinking in the merge case above would
fail.
In the other hand, on Windows environment, "unlink()" of Mercurial
tries to rename before actual unlinking, to follow POSIX semantics:
already opened file can be unlinked safely.
This causes unexpected success in unlinking in the merge case above,
even though directory 'A' is renamed to another. This confuses users.
This patch checks whether target is directory or not before renaming,
and raises IOError(errno.EPERM) if so, to follow POSIX semantics.
Augie Fackler <raf@durin42.com> [Thu, 09 May 2013 09:51:42 -0400] rev 19158
Merge with stable.
Siddharth Agarwal <sid0@fb.com> [Wed, 08 May 2013 14:11:01 -0700] rev 19157
manifestmerge: local unknown, remote created: don't traverse symlinks
To figure out what to do with locally unknown files, Mercurial attempts to read
them if they exist. When an attempt is made to read a file that exists but
traverses a symlink, Mercurial aborts.
With this patch, we first ensure that the file doesn't traverse a symlink
before opening it. This is fine because a file being "remote created" means the
symlink doesn't exist remotely, which means it will be deleted in the apply
phase.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 09 May 2013 21:09:58 +0900] rev 19156
subrepo: open files in 'rb' mode to read exact data in (issue3926)
Before this patch, "subrepo._calcfilehash()" opens files by "open()"
without any mode specification. This implies "text mode" on Windows.
When target file contains '\x00' byte, "read()" in "text mode" reads
file contents in without data after '\x00'.
This causes invalid SHA1 hash calculation in "subrepo._calcfilehash()".
This patch opens files in 'rb' mode to read exact data in.
Siddharth Agarwal <sid0@fb.com> [Thu, 04 Apr 2013 13:45:21 -0700] rev 19155
patch: use scmutil.marktouched instead of scmutil.addremove
addremove required paths relative to the cwd, which meant a lot of extra code
that transformed paths into relative ones. That code is now gone as well.
Siddharth Agarwal <sid0@fb.com> [Thu, 04 Apr 2013 13:38:28 -0700] rev 19154
scmutil: add a function to mark that files have been operated on
Several places use scmutil.addremove as a means to declare that certain files
have been operated on. This is ugly because:
- addremove takes patterns relative to the cwd, not paths relative to the root,
which means extra contortions for callers.
- addremove doesn't make clear what happens to files whose status hasn't
changed.
This new method accepts filenames relative to the repo root, and has a much
clearer contract. It also allows future modifications that do more with files
whose status hasn't changed.
Siddharth Agarwal <sid0@fb.com> [Wed, 03 Apr 2013 15:53:59 -0700] rev 19153
scmutil.addremove: factor out code to mark added/removed/renames
An upcoming patch will reuse this code in another function.
Siddharth Agarwal <sid0@fb.com> [Wed, 03 Apr 2013 16:32:41 -0700] rev 19152
scmutil.addremove: factor out code to find renames
This code will be used in a different context in upcoming patches.
Siddharth Agarwal <sid0@fb.com> [Wed, 03 Apr 2013 15:32:15 -0700] rev 19151
scmutil.addremove: rename local 'copies' to 'renames'
An upcoming patch will refactor some code out into a method called
_findrenames. Having a line saying "copies = _findrenames..." is confusing.
Besides, 'renames' is a more precise name for this local anyway.
Siddharth Agarwal <sid0@fb.com> [Tue, 02 Apr 2013 17:19:36 -0700] rev 19150
scmutil.addremove: factor out dirstate walk into another function
Upcoming patches will reuse and expand on this function for other purposes.
Durham Goode <durham@fb.com> [Wed, 01 May 2013 10:42:03 -0700] rev 19149
filecontext: use 'is not None' to check for filelog existence
Previously we used 'if filelog:' to check if the filelog existed. If the
instance did exist, this pattern then calls len() on the filelog to see
if it is empty. I'm developing a filelog replacement that doesn't have
len() implemented, so it's better to do an explicit 'is not None' check
here instead.
Also change _changeid() to return the _changeid attribute if it has it.
Previously it would try to obtain it from the _changectx(), and if that
did not exist it would construct the _changectx() using the linkrev. In
the extension I'm working on, filectx's don't have easy access to linkrevs
so avoiding this when possible is better.
Durham Goode <durham@fb.com> [Wed, 01 May 2013 10:39:37 -0700] rev 19148
filelog: use super() for calling base functions
filelog had some hardcoded revlog.revlog.foo() calls. This changes it to
use super() instead so that extensions can replace the filelog base class.
Kevin Bullock <kbullock@ringworld.org> [Thu, 02 May 2013 21:28:18 -0500] rev 19147
bookmarks: allow bookmark command to take multiple arguments
This change allows setting or deleting multiple bookmarks at once. If more than
one is being set and --inactive is not given, the first one is made active.
Matt Mackall <mpm@selenic.com> [Sun, 05 May 2013 18:51:34 -0500] rev 19146
merge with stable
Blesso hrvoje1212@gmail.com [Fri, 03 May 2013 19:34:59 +0200] rev 19145
convert: fix bug of wrong CVS path parsing without port number (issue3678)
The cvsps.py:getrepopath suffers from a string parsing bug (it returns
"user@server/path/to/repository" if the CVSROOT is given like this:
":pserver:user@server/path/to/repository" ), which gives returnes the wrong
value becouse cvsps.py fails to strip the prefix from filenames.
With this patch for the same input we get the correct repo path that is:
"/path/to/repository"
Siddharth Agarwal <sid0@fb.com> [Fri, 03 May 2013 15:36:18 -0700] rev 19144
match: add comments to explain explicitdir and traversedir
Siddharth Agarwal <sid0@fb.com> [Fri, 03 May 2013 14:41:58 -0700] rev 19143
match: make explicitdir and traversedir None by default
With this, extensions can easily tell when traversedir and/or explicitdir don't
need to be called.
Siddharth Agarwal <sid0@fb.com> [Fri, 03 May 2013 14:39:28 -0700] rev 19142
dirstate.walk: cache match.explicitdir and traversedir locally
Siddharth Agarwal <sid0@fb.com> [Sun, 28 Apr 2013 21:29:32 -0700] rev 19141
match: drop dir callback
dir has been subsumed by explicitdir and traversedir.
Siddharth Agarwal <sid0@fb.com> [Sun, 28 Apr 2013 21:28:31 -0700] rev 19140
inotify: call match.explicitdir
inotify only returns explicit directories matched.
Siddharth Agarwal <sid0@fb.com> [Sun, 28 Apr 2013 21:27:57 -0700] rev 19139
purge: hook into match.explicitdir and traversedir
Siddharth Agarwal <sid0@fb.com> [Sun, 28 Apr 2013 21:27:21 -0700] rev 19138
localrepo.commit: hook into match.explicitdir
Siddharth Agarwal <sid0@fb.com> [Sun, 28 Apr 2013 21:25:41 -0700] rev 19137
dirstate.walk: call match.explicitdir or traversedir as appropriate
Siddharth Agarwal <sid0@fb.com> [Sun, 28 Apr 2013 21:24:09 -0700] rev 19136
match: introduce explicitdir and traversedir
match.dir is currently called in two different places:
(1) noting when a directory specified explicitly is visited.
(2) noting when a directory is visited during a recursive walk.
purge cares about both, but commit only cares about the first.
Upcoming patches will split the two cases into two different callbacks. Why
bother? Consider a hypothetical extension that can provide more efficient walk
results, via e.g. watching the filesystem. That extension will need to
fall back to a full recursive walk if a callback is set for (2), but not if a
callback is only set for (1).
Matt Mackall <mpm@selenic.com> [Sat, 04 May 2013 14:52:51 -0500] rev 19135
merge with stable
Siddharth Agarwal <sid0@fb.com> [Fri, 03 May 2013 15:18:21 -0700] rev 19134
run-tests: when running in parallel, delete tmpdirs immediately
This is especially important if extensions that use inotify are enabled,
because it's very easy to hit the inotify max_user_instances limit without
this.
Brendan Cully <brendan@kublai.com> [Fri, 03 May 2013 14:19:30 -0700] rev 19133
tests: check path separator in moves
Brendan Cully <brendan@kublai.com> [Fri, 03 May 2013 13:59:58 -0700] rev 19132
tests: fix test-commandserver phase . output for windows
Matt Mackall <mpm@selenic.com> [Sat, 04 May 2013 14:51:21 -0500] rev 19131
hfs+: rewrite percent-escaper (issue3918)
The original code was a bit too clever and got confused by some cp949
Korean text. This rewrite bytes the bullet and manually decodes UTF-8
sequences. Adds some doctests.
Matt Mackall <mpm@selenic.com> [Fri, 03 May 2013 15:34:18 -0500] rev 19130
merge with stable
Bryan O'Sullivan <bryano@fb.com> [Fri, 03 May 2013 12:40:17 -0700] rev 19129
revert: ensure that copies and renames are honored (issue3920)
Previously, we restored the states of files, but not the additional
information the dirstate uses to track copies and renames.
Durham Goode <durham@fb.com> [Fri, 03 May 2013 09:44:50 -0700] rev 19128
hgignore: fix regression with hgignore directory matches (issue3921)
If a directory matched a regex in hgignore but the files inside the directory
did not match the regex, they would appear as deleted in hg status. This
change fixes them to appear normally in hg status.
Removing the ignore(nf) conditional here is ok because it just means we might
stat more files than we had before. My testing on a large repo shows this
causes no performance regression since the only additional files being stat'd
are the ones that are missing (i.e. status=!), which are generally rare.
Augie Fackler <raf@durin42.com> [Thu, 02 May 2013 20:41:22 -0500] rev 19127
templater: fix output instability from gsoc patches
Iulian Stana <julian.stana@gmail.com> [Thu, 18 Apr 2013 22:56:57 +0300] rev 19126
log-style: add a log style that is default+phase (issue3436)
There is a new style called phases style.
Usage::
hg log --style phases
Why do we need this new style - in what way is it different from or similar to
existing styles?
The new style is default + phases information. With the new phases feature the
users exhibited their desire for a new style that could help them.
Why do this need a new style - couldn't it be folded into an existing style?
The default style and the new one are about the same, the difference is the
phases tag. The users find both styles useful, this means that the both styles
must exist.
Iulian Stana <julian.stana@gmail.com> [Thu, 02 May 2013 20:23:14 -0500] rev 19125
templater: show the style list when I try to use a wrong one
When someone try to use a wrong style, a list with sugestions will appear.
In the test-log.t file it's a test that prove this thing.
Siddharth Agarwal <sid0@fb.com> [Sat, 27 Apr 2013 23:49:34 -0700] rev 19124
test-nested-repo.t: touch another file inside nested repo
This helped uncover a bug in a patchset I've been writing.
Matt Mackall <mpm@selenic.com> [Thu, 02 May 2013 15:21:47 -0500] rev 19123
check-code: add more path sep glob checks
Ben Goswami <bengoswami@fb.com> [Thu, 25 Apr 2013 18:01:00 -0700] rev 19122
splicemap: improve error handling when source is subversion (issue2084)
Implemented error handling on splicemap file when source is
subversion (This checks are similar to when source is hg or git).
The revision string is expected to be of svn:<uuid><path>@<number>
format.
the test case has been enhanced to check this format.
Ben Goswami <bengoswami@fb.com> [Thu, 25 Apr 2013 16:02:58 -0700] rev 19121
splicemap: improve error handling when source is git (issue2084)
Implemented similar error handling that is done for hg in an earlier revision.
These are:
a. add checking for splicemap file format
b. add checking for each revision string formats
Ben Goswami <bengoswami@fb.com> [Thu, 25 Apr 2013 11:50:26 -0700] rev 19120
splicemap: improve error handling when source is hg (issue2084)
1. Introduced 2 levels of error handling for splicemap files
a. Check the splicemap file for rules which are same across different
types of source repos. This is done through enhancing parsesplicemap
function
b. Check revision string formats. Each repo may have their own format.
This is done usign checkrevformat function
c. Implemented the above two for hg
Ben Goswami <bengoswami@fb.com> [Wed, 24 Apr 2013 18:26:37 -0700] rev 19119
splicemap: move parsesplicemap to convcmd.py (issue2084)
parsesplicemap is only referenced from convcmd.py
This move is necessary to enable other changes related to
this issue
Matt Mackall <mpm@selenic.com> [Thu, 02 May 2013 14:11:34 -0500] rev 19118
merge with stable
Brendan Cully <brendan@kublai.com> [Thu, 02 May 2013 11:26:43 -0700] rev 19117
tests: sprinkle globs over largefiles/subrepo tests for Windows
Brendan Cully <brendan@kublai.com> [Thu, 02 May 2013 11:17:18 -0700] rev 19116
tests: skip permissions tests in test-phases-exchange when fs lacks permissions
Matt Mackall <mpm@selenic.com> [Thu, 02 May 2013 12:15:41 -0500] rev 19115
merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 01 May 2013 17:49:53 -0500] rev 19114
Added signature for changeset 23f785b38af3
Matt Mackall <mpm@selenic.com> [Wed, 01 May 2013 17:49:48 -0500] rev 19113
Added tag 2.6 for changeset 23f785b38af3
Sean Farley <sean.michael.farley@gmail.com> [Wed, 01 May 2013 15:24:21 -0500] rev 19112
bookmarks: fix bug that activated a bookmark even with -r passed
If the current revision was the target revision of -r, then the bookmark would
be active. Test cases have been updated accordingly.
Sean Farley <sean.michael.farley@gmail.com> [Tue, 30 Apr 2013 21:12:49 -0500] rev 19111
bookmarks: resolve divergent bookmark when moving across a branch
This patch resolves a single divergent bookmark if a divergent bookmark exists
in the target revision and it current bookmark is not an ancestor of the target
revision, else it would already be handled by the previous patch in this
series.
Test coverage is added.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 01 May 2013 15:34:45 -0500] rev 19110
bookmarks: resolve divergent bookmarks when moving active bookmark forward
This patch resolves divergent bookmarks between the current active bookmark
MARK and the new destination. This situation can arise when pulling new
changesets, abandoning your current changesets actively bookmarked with MARK
via strip, and then doing a bare update. The non-divergent but active bookmark
MARK is then moved to a common ancestor of the new changesets and the abandoned
changesets.
Test coverage is added.
Sean Farley <sean.michael.farley@gmail.com> [Wed, 01 May 2013 15:31:39 -0500] rev 19109
bookmarks: resolve divergent bookmarks when fowarding bookmark to descendant
This patch is a follow-up to 56dd55da2f7d that resolves divergent bookmarks
between the to-be-forwarded bookmark MARK and the new descendant. This
situation can happen when pulling new changesets, updating to the divergent
bookmark, abandoning the previous changesets with strip, and then moving MARK
to MARK@N.
Test coverage is added.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 30 Apr 2013 09:02:02 +0900] rev 19108
tags: update tag type only if tag node is updated (issue3911)
Before this patch, tag type information is always updated, even if tag
previously read in has higher priority than one newly read in.
This causes that the tag type is displayed as "local", even if global
tag overwrites existing local one successfully.
This patch updates tag type only if tag node is updated.
This patch tests overwriting local tags below:
- visible one (normal case)
- already removed one (recorded as null)
Mads Kiilerich <madski@unity3d.com> [Tue, 30 Apr 2013 01:04:35 +0200] rev 19107
match: fix root calculation for combining regexps with simple paths
The fall-back root for walking is the repo root, not no root.
The "roots" do however also end up in m.files() which is used in various ways,
for instance to indicate whether matches are exact. The change could thus have
other impacts.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 30 Apr 2013 05:01:32 +0900] rev 19106
icasefs: enhance test to prevent regression by changes in the future
This patch adds steps to test case-folding collision detection on the
revision tree built up in the order different from the one reproducing
issue3452.
This may prevent regression by changes around "copy detection" and/or
"case-folding collision detection" logic in the future.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 30 Apr 2013 05:01:32 +0900] rev 19105
icasefs: rewrite case-folding collision detection (issue3452)
Before this patch, case-folding collision detection uses
"copies.pathcopies()" before "manifestmerge()", and is not aware of
renaming in some cases.
For example, in the case of issue3452, "copies.pathcopies()" can't
detect renaming, if the file is renamed at the revision before common
ancestor of merging. So, "hg merge" is aborted unexpectedly on case
insensitive filesystem.
This patch fully rewrites case-folding collision detection, and
relocate it into "manifestmerge()".
New implementation uses list of actions held in "actions" and
"prompts" to build provisional merged manifest up.
Provisional merged manifest should be correct, if actions required to
build merge result up in working directory are listed up in "actions"
and "prompts" correctly.
This patch checks case-folding collision still before prompting for
merge, to avoid aborting after some interactions with users. So, this
assumes that user would choose not "deleted" but "changed".
This patch also changes existing abort message, because sorting before
collision detection changes order of checked files.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 30 Apr 2013 05:01:32 +0900] rev 19104
icasefs: refactor "test-casecollision-merge.t" to reuse in succeeding fixes
This patch refactors "test-casecollision-merge.t" to increase
reusability in succeeding patches.
It is confirmed that changed test also can detect issue3370.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 30 Apr 2013 05:00:48 +0900] rev 19103
icasefs: ignore removed files at building "dirstate._foldmap" up on icasefs
Before this patch, all files in dirstate are used to build "_foldmap"
up on case insensitive filesystem regardless of their statuses.
For example, when dirstate contains both removed file 'a' and added
file 'A', "_foldmap" may be updated finally by removed file 'a'. This
causes unexpected status information for added file 'A' at "hg status"
invocation.
This patch ignores removed files at building "_foldmap" up on case
insensitive filessytem.
This patch doesn't add any test, because this issue is difficult to
reproduce intentionally: it depends on iteration order of "dirstate._map".