Siddharth Agarwal <sid0@fb.com> [Tue, 10 Nov 2015 17:16:59 -0800] rev 26899
resolve: don't abort when file is missing
A file being missing is a completely valid situation in which the user may want
to re-resolve merge conflicts. Mercurial already maintains backups of local
data, so this turns out to be easy to handle.
Siddharth Agarwal <sid0@fb.com> [Tue, 10 Nov 2015 17:13:16 -0800] rev 26898
filemerge: treat EOF at prompt as fail, not abort
Previously we'd abort the merge entirely if there was an EOF at the prompt.
This is unnecessary -- it's much better to simply fail and treat the file as
unresolved instead.
Siddharth Agarwal <sid0@fb.com> [Tue, 10 Nov 2015 17:10:47 -0800] rev 26897
test-merge-tools.t: add 'hg resolve --list' output to tests
In upcoming patches we're going to be making some improvements to the ':prompt'
merge tool, and one of them is recovering appropriately from exceptions. It is
important in such cases to make sure that the merge state is written out
properly.
I went through the output and verified that it all makes sense.
Siddharth Agarwal <sid0@fb.com> [Tue, 10 Nov 2015 00:46:45 -0800] rev 26896
error: add structured exception for EOF at prompt
We'll catch this exception for promptchoice queries to provide better error
handling.
Siddharth Agarwal <sid0@fb.com> [Mon, 09 Nov 2015 22:37:32 -0800] rev 26895
test-merge-prompt.t: unset HGMERGE
We're going to test behavior with and without HGMERGE, so disable it for the
test.
Anton Shestakov <av6@dwimlabs.net> [Tue, 10 Nov 2015 23:02:59 +0800] rev 26894
hgweb: compute changeset parents and children for log pages lazily
Log pages, i.e. changelog, filelog and search results page computed children
and parents for each changeset shown, because spartan hgweb style shows this
info. Turns out, computing all this is heavy and also unnecessary for log pages
in all other hgweb styles.
Luckily, templates allow an easy way to do computations on demand: just pass
the heavy part of code as a callable and it will be only called when needed.
Here are some benchmarks on the mercurial repository (best of 3):
time wget http://127.0.0.1:8021/
before: 0m0.050s
after: 0m0.040s
time wget http://127.0.0.1:8021/?revcount=960
before: 0m1.164s
after: 0m0.389s
time wget http://127.0.0.1:8021/log/tip/mercurial/commands.py
before: 0m0.047s
after: 0m0.042s
time wget http://127.0.0.1:8021/log/tip/mercurial/commands.py?revcount=960
before: 0m0.830s
after: 0m0.434s
Siddharth Agarwal <sid0@fb.com> [Sun, 08 Nov 2015 23:42:44 -0800] rev 26893
filemerge: move :merge-local/other symlink check to precheck
In upcoming patches we're going to add more checks to the function currently
named _symlinkcheck. This consolidates all those checks.
Siddharth Agarwal <sid0@fb.com> [Sun, 08 Nov 2015 23:47:20 -0800] rev 26892
test-merge-types.t: add tests for :merge-local/:merge-other with symlinks
This had no test coverage.
Matt Mackall <mpm@selenic.com> [Mon, 09 Nov 2015 16:24:13 -0600] rev 26891
Added signature for changeset 1aa5083cbebb
Matt Mackall <mpm@selenic.com> [Mon, 09 Nov 2015 16:24:08 -0600] rev 26890
Added tag 3.6.1 for changeset 1aa5083cbebb
Matt Mackall <mpm@selenic.com> [Mon, 09 Nov 2015 15:53:11 -0600] rev 26889
posix: fix test-permissions regression
Anton Shestakov <av6@dwimlabs.net> [Sun, 08 Nov 2015 01:10:52 +0800] rev 26888
dockerlib: allow non-unique uid and gid of $DBUILDUSER (issue4657)
There are make targets for building mercurial packages for various
distributions using docker. One of the preparation steps before building is to
create inside the docker image a user with the same uid/gid as the current user
on the host system, so that the resulting files have appropriate
ownership/permissions.
It's possible to run `make docker-<distro>` as a user with uid or gid that is
already present in a vanilla docker container of that distibution. For example,
issue4657 is about failing to build fedora packages as a user with uid=999 and
gid=999 because these ids are already used in fedora, and groupadd fails.
useradd would fail too, if the flow ever got to it (and there was a user with
such uid already).
A straightforward (maybe too much) way to fix this is to allow non-unique uid
and gid for the new user and group that get created inside the image. I'm not
sure of the implications of this, but marmoute encouraged me to try and send
this patch for stable.
Mateusz Kwapich <mitrandir@fb.com> [Mon, 09 Nov 2015 10:43:23 -0800] rev 26887
dirstate: fix filefoldmap incosistency on file delete
The _filefoldmap is not updated in when files are deleted from dirstate. In the
case where the file with the same but differently cased name is added afterwards
it renders _filefoldmap incorrect. Those steps must occur to for a problem to
reproduce:
- call status (with listunknown=True),
- update working rectory to a commit which does a casefolding change (A -> a)
- call status again (it will show the file "a" as deleted)
Unfortunately I'm unable to write a test for it because I don't know any
core-mercurial command able to reproduce those steps.
The bug was originally spotted when hgwatchman was enabled. It caused the
changeset contents change during hg rebase (one file unrelarted to changeset
was deleted in it after rebase).
The hgwatchman is able to hit it because when hgignore changes the hgwatchmans
overridestatus is calling original status with listunknown=True.
Steve Borho <steve@borho.org> [Mon, 09 Nov 2015 09:41:20 -0600] rev 26886
wix: style-coal.css has been renamed