Mon, 19 Oct 2015 15:25:58 +0200 tests: test generaldelta configuration in test-init.t
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 19 Oct 2015 15:25:58 +0200] rev 26921
tests: test generaldelta configuration in test-init.t We turn the feature on for the whole test and test that it can properly be disabled through the config.
Mon, 19 Oct 2015 11:28:31 +0200 test: enable generaldelta early in 'test-treemanifest.t'
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 19 Oct 2015 11:28:31 +0200] rev 26920
test: enable generaldelta early in 'test-treemanifest.t' Having generaldelta on results in minor test output changes (as we are staring at the revlog).
Mon, 19 Oct 2015 10:48:02 +0200 test: enable generaldelta in 'test-copy.t'
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 19 Oct 2015 10:48:02 +0200] rev 26919
test: enable generaldelta in 'test-copy.t' Doing so has a minimal impact on the test.
Sun, 18 Oct 2015 19:04:29 +0200 test: enable generaldelta in 'test-debugcommand.t'
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 18 Oct 2015 19:04:29 +0200] rev 26918
test: enable generaldelta in 'test-debugcommand.t' The test logic is not affected by generaldelta, so we move it to generaldelta early. Some of the fuzzy matching had to be extended to cover "delta".
Sun, 18 Oct 2015 18:55:32 +0200 test: use generaldelta in test-manifestv2.t
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 18 Oct 2015 18:55:32 +0200] rev 26917
test: use generaldelta in test-manifestv2.t Generaldelta and bundle2 have no real influence on this test. So we can safely switch it early.
Sun, 18 Oct 2015 18:36:39 +0200 test: explicitly use generaldelta in 'test-rebase-mq-skip.t'
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 18 Oct 2015 18:36:39 +0200] rev 26916
test: explicitly use generaldelta in 'test-rebase-mq-skip.t' This induces some trivial changes in the tests. This happen in its own changeset for clarity purposes.
Fri, 16 Oct 2015 02:54:52 +0100 test: using generaldelta in 'test-lfconvert.t'
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 16 Oct 2015 02:54:52 +0100] rev 26915
test: using generaldelta in 'test-lfconvert.t' This leads to a harmless test change.
Thu, 12 Nov 2015 02:52:19 -0800 test: enforce generaldelta format with the right option
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 12 Nov 2015 02:52:19 -0800] rev 26914
test: enforce generaldelta format with the right option The option that will become true by default is now 'usegeneraldelta' We have to adjust the change made in b75fed55f6dc to actually achieve its goal.
Sat, 07 Nov 2015 13:53:11 -0500 test: enforce non-generaldelta base repository in 'test-generaldelta'
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 07 Nov 2015 13:53:11 -0500] rev 26913
test: enforce non-generaldelta base repository in 'test-generaldelta' This test check the difference between various configurations we have to pin the type of some repositories to ensure the test is still correct when we change the default.
Tue, 20 Oct 2015 12:25:51 +0200 test: use generaldelta in 'test-hgweb-command.t'
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 20 Oct 2015 12:25:51 +0200] rev 26912
test: use generaldelta in 'test-hgweb-command.t' Using generaldelta has a meaningless impact on the capabilities string.
Tue, 20 Oct 2015 12:28:42 +0200 stream: sort stream capability before serialisation
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 20 Oct 2015 12:28:42 +0200] rev 26911
stream: sort stream capability before serialisation We want that capability to be stable in our testing. This is currently not an issue because the set is size 1, but this will be once generaldelta related data gets in there.
Tue, 20 Oct 2015 12:25:09 +0200 test: spread capabilities replies in 'test-hgweb-commands'
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 20 Oct 2015 12:25:09 +0200] rev 26910
test: spread capabilities replies in 'test-hgweb-commands' Any changes to the capabilities string was very hard to review. So we introduce two tests. A small one that validates the format and a second one to validate the content, where each capability is on its own line to make changes simpler to review.
Sat, 07 Nov 2015 16:11:49 -0800 phase: improve retractboundary perf
Durham Goode <durham@fb.com> [Sat, 07 Nov 2015 16:11:49 -0800] rev 26909
phase: improve retractboundary perf The existing retractboundary implementation computed the new boundary by walking all descendants of all existing roots and computing the new roots. This is O(commits since first root), which on long repos can be hundreds of thousands of commits. The new algorithm only updates roots that are greater than the new root locations. For common operations like commit on a repo with the earliest root several hundred thousand commits ago, this makes retractboundary go from 1 second to 0.008 seconds. I tested it by running the test suite with both implementations and checking that the root results were always the identical. There was some discussion on IRC about the safety of this (i.e. what if the new nodes are already part of the phase, etc). I've looked into it and believe this patch is safe: 1) The old existing code already filters the input nodes to only contain nodes that require retracting (i.e. we only make node X a new root if the old phase is less than the target phase), so there's no chance of us adding a unnecessary root to the phase (unless the input root is made unnecessary by another root in the same input, but see point #3). 2) Another way of thinking about this is: the only way the new algorithm would be different from the old algorithm is if it added a root that is a descendant of an old root (since the old algorithm would've caught this in the big "roots(%ln::)". At the beginning of the function, when we filter out roots that already meet the phase criteria, the *definition* of meeting the phase criteria is "not being a descendant of an existing root". Therefore, by definition none of the new roots we are processing are descendants of an existing root. 3) If two nodes are passed in as input, and one node is an ancestor of the other (and therefore the later node should not be a root), this is still caught by the 'roots(%ln::)' revset. So there's no chance of an extra root being introduced that way either.
Thu, 12 Nov 2015 13:51:09 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 12 Nov 2015 13:51:09 -0600] rev 26908
merge with stable
Mon, 02 Nov 2015 15:59:12 +0000 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 15:59:12 +0000] rev 26907
format: introduce 'format.usegeneraldelta` This option will make repositories created as general delta by default but will not make Mercurial aggressively recompute deltas for all incoming bundle. Instead, the delta contained in the bundle will be used. This will allow us to start having general delta repositories created everywhere without triggering massive recomputation costs for all new clients cloning from old servers.
Mon, 02 Nov 2015 16:52:34 +0000 scmutil: extract general delta config handling in a function
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 16:52:34 +0000] rev 26906
scmutil: extract general delta config handling in a function General delta is currently controlled by a single option, we will introduce a new one in the next changeset. We extract the logic in a function while it is simple.
Tue, 10 Nov 2015 09:58:10 -0800 test: test-bundle-type.t needs to work more universally stable
Danek Duvall <danek.duvall@oracle.com> [Tue, 10 Nov 2015 09:58:10 -0800] rev 26905
test: test-bundle-type.t needs to work more universally The cut and head utilities on Solaris have weird differences from the GNU versions. The f helper script does a dump more nicely than those tools, anyway.
Tue, 10 Nov 2015 19:52:30 +0800 bash_completion: add -p|--patch|--stat support for shelve
Anton Shestakov <av6@dwimlabs.net> [Tue, 10 Nov 2015 19:52:30 +0800] rev 26904
bash_completion: add -p|--patch|--stat support for shelve
Sun, 08 Nov 2015 18:34:36 -0500 test-convert-git: silence commit output for stablity
Matt Harbison <matt_harbison@yahoo.com> [Sun, 08 Nov 2015 18:34:36 -0500] rev 26903
test-convert-git: silence commit output for stablity When running the tests with 1.7.7.6, I get 'files' and 'insertions' instead of the singular forms, and there is also an additional '0 deletions(-)' at the end. Since this doesn't seem important to the test, silence it.
Sun, 08 Nov 2015 17:56:48 -0500 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com> [Sun, 08 Nov 2015 17:56:48 -0500] rev 26902
rebase: preserve the 'intermediate-source' attribute of grafts Preserving the 'source' attribute of grafts started with a69a77a80900, which predates the introduction of 'intermediate-source' in 51930a7180bd by a year and a half. It looks like not preserving this was an oversight. On a related note, notice how the source value of 32af76 is no longer visible in the graph above this test. Is it reasonable to import the sha1 translation from evolve.py:relocate() into scmutil or similar, and use that to fixup these attributes as well as the commit message? (I realize that evolve is still experimental, but I don't see a way to do this from the evolve extension.)
Wed, 11 Nov 2015 15:08:08 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 11 Nov 2015 15:08:08 -0600] rev 26901
merge with stable
Wed, 04 Nov 2015 12:14:18 -0500 verify: add a hook that can let extensions manipulate file lists
Augie Fackler <augie@google.com> [Wed, 04 Nov 2015 12:14:18 -0500] rev 26900
verify: add a hook that can let extensions manipulate file lists Without a hook of this nature, narrowhg[0] clones always result in 'hg verify' reporting terrible damage to the entire repository history. With this hook, we can ignore files that aren't supposed to be in the clone, and then get an accurate report of any damage present (or not) in the repo. 0: https://bitbucket.org/Google/narrowhg
Tue, 10 Nov 2015 17:16:59 -0800 resolve: don't abort when file is missing
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.
Tue, 10 Nov 2015 17:13:16 -0800 filemerge: treat EOF at prompt as fail, not abort
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.
Tue, 10 Nov 2015 17:10:47 -0800 test-merge-tools.t: add 'hg resolve --list' output to tests
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.
Tue, 10 Nov 2015 00:46:45 -0800 error: add structured exception for EOF at prompt
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.
Mon, 09 Nov 2015 22:37:32 -0800 test-merge-prompt.t: unset HGMERGE
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.
Tue, 10 Nov 2015 23:02:59 +0800 hgweb: compute changeset parents and children for log pages lazily
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
Sun, 08 Nov 2015 23:42:44 -0800 filemerge: move :merge-local/other symlink check to precheck
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.
Sun, 08 Nov 2015 23:47:20 -0800 test-merge-types.t: add tests for :merge-local/:merge-other with symlinks
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.
Mon, 09 Nov 2015 16:24:13 -0600 Added signature for changeset 1aa5083cbebb stable
Matt Mackall <mpm@selenic.com> [Mon, 09 Nov 2015 16:24:13 -0600] rev 26891
Added signature for changeset 1aa5083cbebb
Mon, 09 Nov 2015 16:24:08 -0600 Added tag 3.6.1 for changeset 1aa5083cbebb stable
Matt Mackall <mpm@selenic.com> [Mon, 09 Nov 2015 16:24:08 -0600] rev 26890
Added tag 3.6.1 for changeset 1aa5083cbebb
Mon, 09 Nov 2015 15:53:11 -0600 posix: fix test-permissions regression stable 3.6.1
Matt Mackall <mpm@selenic.com> [Mon, 09 Nov 2015 15:53:11 -0600] rev 26889
posix: fix test-permissions regression
Sun, 08 Nov 2015 01:10:52 +0800 dockerlib: allow non-unique uid and gid of $DBUILDUSER (issue4657) stable
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.
Mon, 09 Nov 2015 10:43:23 -0800 dirstate: fix filefoldmap incosistency on file delete 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.
Mon, 09 Nov 2015 09:41:20 -0600 wix: style-coal.css has been renamed stable
Steve Borho <steve@borho.org> [Mon, 09 Nov 2015 09:41:20 -0600] rev 26886
wix: style-coal.css has been renamed
Mon, 09 Nov 2015 12:49:21 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 09 Nov 2015 12:49:21 -0600] rev 26885
merge with stable
Thu, 05 Nov 2015 10:31:20 +0000 clonebundles: fix typo s/comand/command/ stable
Javi Merino <merino.jav@gmail.com> [Thu, 05 Nov 2015 10:31:20 +0000] rev 26884
clonebundles: fix typo s/comand/command/
Fri, 06 Nov 2015 15:23:10 -0600 posix: retry on symlink race in checklink stable
Matt Mackall <mpm@selenic.com> [Fri, 06 Nov 2015 15:23:10 -0600] rev 26883
posix: retry on symlink race in checklink Multiple threads might attempt to check links with the same temporary name. This would cause one side to get an EEXIST error and wrongly fail the support check. Here, we simply retry if our temporary name exists.
Fri, 06 Nov 2015 13:01:15 -0500 changegroup: back code change of e7c618cee8df out stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 13:01:15 -0500] rev 26882
changegroup: back code change of e7c618cee8df out The previous changeset is a simpler way of fixing issue4934 without changing the spirit of the code. We can remove the dual call to 'delayupdate' but we keep the tests to show that the issue is still fixed.
Fri, 06 Nov 2015 12:59:09 -0500 changegroup: call 'prechangegroup' hook before setting up write delay stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 12:59:09 -0500] rev 26881
changegroup: call 'prechangegroup' hook before setting up write delay The 'prechangegroup' interfere with 'delayupdate' logic because it trigger the one time call of 'changelog._writepending' (see issure4934). There is no reason not to call that hook before setting up 'delayupdate' so we move the call a bit earlier to avoid interference.
Fri, 06 Nov 2015 12:39:06 -0500 changegroup: fix the scope of a try finally stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 12:39:06 -0500] rev 26880
changegroup: fix the scope of a try finally The try finally is here to ensure we release the just-created transaction. Therefore we should not do half a dozen operations before actually entry the try scope.
Thu, 05 Nov 2015 17:30:10 -0600 encoding: re-escape U+DCxx characters in toutf8b input (issue4927)
Matt Mackall <mpm@selenic.com> [Thu, 05 Nov 2015 17:30:10 -0600] rev 26879
encoding: re-escape U+DCxx characters in toutf8b input (issue4927) This is the final missing piece in fully round-tripping random byte strings through UTF-8b. While this issue means that UTF-8 <-> UTF-8b isn't fully bijective, we don't expect to ever see U+DCxx codepoints in "real" UTF-8 data, so it should remain bijective in practice.
Thu, 05 Nov 2015 17:21:43 -0600 encoding: use getutf8char in toutf8b
Matt Mackall <mpm@selenic.com> [Thu, 05 Nov 2015 17:21:43 -0600] rev 26878
encoding: use getutf8char in toutf8b This correctly avoids the ambiguity of U+FFFD already present in the input and similar confusion by working a character at a time.
Thu, 05 Nov 2015 17:11:50 -0600 encoding: handle non-BMP characters in fromutf8b
Matt Mackall <mpm@selenic.com> [Thu, 05 Nov 2015 17:11:50 -0600] rev 26877
encoding: handle non-BMP characters in fromutf8b
Thu, 05 Nov 2015 17:09:00 -0600 posix: use getutf8char to handle OS X filename percent-escaping
Matt Mackall <mpm@selenic.com> [Thu, 05 Nov 2015 17:09:00 -0600] rev 26876
posix: use getutf8char to handle OS X filename percent-escaping This replaces an open-coded utf-8 parser that was ignoring subtle issues like overlong encodings.
Thu, 05 Nov 2015 16:48:46 -0600 encoding: add getutf8char helper
Matt Mackall <mpm@selenic.com> [Thu, 05 Nov 2015 16:48:46 -0600] rev 26875
encoding: add getutf8char helper This allows us to find character boundaries in byte strings when trying to do custom encodings.
Sat, 07 Nov 2015 16:03:09 -0500 unbundle: gratuitous fix white spacing "issue"
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 07 Nov 2015 16:03:09 -0500] rev 26874
unbundle: gratuitous fix white spacing "issue" We were missing one space on this block.
Sun, 01 Nov 2015 21:19:09 +0900 demandimport: fix level passed to loader of sub-modules stable
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 21:19:09 +0900] rev 26873
demandimport: fix level passed to loader of sub-modules As the fromlist gives the names of sub-modules, they should be searched in the parent directory of the package's __init__.py, which is level=1. I got the following error by rewriting hgweb to use absolute_import, where the "mercurial" package is referenced as ".." (level=2): ValueError: Attempted relative import beyond toplevel package I know little about the import mechanism, but this change seems correct. Before this patch, the following code did import the os module with no error: from mercurial import demandimport demandimport.enable() from mercurial import os print os.name
Sat, 07 Nov 2015 17:43:20 +0900 parsers: fix width of datalen variable in fm1readmarkers stable
Yuya Nishihara <yuya@tcha.org> [Sat, 07 Nov 2015 17:43:20 +0900] rev 26872
parsers: fix width of datalen variable in fm1readmarkers Because parsers.c does not define PY_SSIZE_T_CLEAN, "s#" format requires (const char*, int), not (const char*, Py_ssize_t). https://docs.python.org/2/c-api/arg.html This error had no problem before 042344313939, where datalen wasn't used. But now fm1readmarkers() fails with "overflow in obsstore" on Python 2.6.9 (amd64) because upper bits of datalen seem to be filled with 1, making it a negative integer. This problem seems not visible on our Python 2.7 environment because upper bits happen to be filled with 0.
Thu, 05 Nov 2015 18:56:40 -0800 manifest: skip fastdelta if the change is large
Durham Goode <durham@fb.com> [Thu, 05 Nov 2015 18:56:40 -0800] rev 26871
manifest: skip fastdelta if the change is large In large repos, the existing manifest fastdelta computation (which performs a bisect on the raw manifest for every file that is changing), is excessively slow. This patch makes fastdelta fallback to the normal string delta algorithm if the number of changes is large. On a large repo with a commit of 8000 files, this reduces the commit time by 7 seconds (fastdelta goes from 8 seconds to 1). I tested this change by modifying the function to compare the old and the new values and running the test suite. The only difference is that the pure text-diff algorithm sometimes produces smaller (but functionaly identical) deltatexts than the bisect algorithm.
Wed, 04 Nov 2015 23:44:51 -0800 merge.mergestate: update docstrings for preresolve and resolve
Siddharth Agarwal <sid0@fb.com> [Wed, 04 Nov 2015 23:44:51 -0800] rev 26870
merge.mergestate: update docstrings for preresolve and resolve Add a docstring for preresolve, and update the one for resolve.
Mon, 26 Oct 2015 02:35:48 -0700 rebase: pass date parameter to concludenode
Stanislau Hlebik <stash@fb.com> [Mon, 26 Oct 2015 02:35:48 -0700] rev 26869
rebase: pass date parameter to concludenode
Mon, 26 Oct 2015 02:22:26 -0700 rebase: add date parameter to concludenode function
Stanislau Hlebik <stash@fb.com> [Mon, 26 Oct 2015 02:22:26 -0700] rev 26868
rebase: add date parameter to concludenode function This parameter will allow us to set the date of rebased commits
Sat, 24 Oct 2015 09:47:33 +0100 hgweb: remove unused colorPart() from mercurial.js
Anton Shestakov <av6@dwimlabs.net> [Sat, 24 Oct 2015 09:47:33 +0100] rev 26867
hgweb: remove unused colorPart() from mercurial.js Looks like the function wasn't ever used since its introduction in 0dba955c2636, since setColor() below always used "rgb(255, 255, 255)" notation which doesn't need hex digits.
Sun, 18 Oct 2015 18:49:59 +0200 test: enforce non-general delta in 'test-generaldelta.t'
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 18 Oct 2015 18:49:59 +0200] rev 26866
test: enforce non-general delta in 'test-generaldelta.t' If general delta becomes the default, we need to be explicit about what we want to be tested.
Tue, 20 Oct 2015 15:27:56 +0200 test: enforce bundle1 in 'test-push-cgi.t'
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 20 Oct 2015 15:27:56 +0200] rev 26865
test: enforce bundle1 in 'test-push-cgi.t' This test is checking bundle1 application, therefore we have to enforce the generated bundle to be a bundle1.
Sun, 18 Oct 2015 18:42:09 +0200 test: enforce v1 in 'test-debugbundle.t'
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 18 Oct 2015 18:42:09 +0200] rev 26864
test: enforce v1 in 'test-debugbundle.t' This test is about bundle1 and should remain so when we move to generaldelta by default.
Tue, 20 Oct 2015 02:39:42 +0200 test: enforce bundle1 in "test-commit-interactive.t"
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 20 Oct 2015 02:39:42 +0200] rev 26863
test: enforce bundle1 in "test-commit-interactive.t" This test generate a bundle to get a binary file to commit. We should ensure this binary file remains the same when we move to general delta as default.
Fri, 06 Nov 2015 09:48:24 -0800 discovery: factor out calculation of heads to not warn about
Ryan McElroy <rmcelroy@fb.com> [Fri, 06 Nov 2015 09:48:24 -0800] rev 26862
discovery: factor out calculation of heads to not warn about In addition to taking a step towards getting an unreasonably large function factored into smaller, more manageable functions, this will allow extensions such as remotenames have more control over what pushes are allowed or not.
Fri, 06 Nov 2015 11:08:11 -0500 hooks: back 9f272bf3b342 out stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 11:08:11 -0500] rev 26861
hooks: back 9f272bf3b342 out Changeset 9f272bf3b342 alters the 'HG_PENDING' mechanism to be "always" there. This change is made under the assumption than we previously did it only when "writepending() actually wrote something". This assumption was wrong, 'writepending()' informs of pending changes the first time something is written and for all following calls. We back this change out to restore the former behavior, which was already correct.
Wed, 04 Nov 2015 15:17:52 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 04 Nov 2015 15:17:52 -0600] rev 26860
merge with stable
Tue, 03 Nov 2015 17:13:27 -0800 hooks: fix hooks not firing if prechangegroup was set (issue4934) stable
Durham Goode <durham@fb.com> [Tue, 03 Nov 2015 17:13:27 -0800] rev 26859
hooks: fix hooks not firing if prechangegroup was set (issue4934) We need to call delayupdate again after writing to the changelog. Otherwise the prechangegroup hook consumes the delayupdate subscription and future hooks don't see the pending changes (see issue 4934 for more details). Adds a test that triggers the prechangegroup hook before the pretxnchangegroup hook and verifies that the output of pretxnchangegroup doesn't change.
Tue, 03 Nov 2015 16:58:13 -0800 hooks: always include HG_PENDING stable
Durham Goode <durham@fb.com> [Tue, 03 Nov 2015 16:58:13 -0800] rev 26858
hooks: always include HG_PENDING Previously we would only include HG_PENDING in the hook args if the transaction's writepending() actually wrote something. This is a bad criteria, since it's possible that a previous call to writepending() wrote stuff and the hooks want to still see that. The solution is to always have hooks execute within the scope of the pending changes by always putting HG_PENDING in the environment.
Tue, 03 Nov 2015 12:31:33 -0800 wireproto: move clonebundles command from extension (issue4931) stable
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 03 Nov 2015 12:31:33 -0800] rev 26857
wireproto: move clonebundles command from extension (issue4931) The SSH peer class accesses wireproto.commands[cmd] as part of encoding command arguments. Previously, the wire protocol command was defined in the clonebundles extension. If the client didn't have this extension enabled (which it likely doesn't since it is meant as a server-side extension), then clients attempting to clone via ssh:// would get a crash due to a KeyError accessing wireproto.commands['clonebundles'] when cloning from a server that is advertising clone bundles. Moving the definition of the wire protocol command to wireproto.py makes this problem go away. A side effect of this code move is servers will always respond to "clonebundles" wire protocol command requests. This should be fine: the server will return an empty response unless a clone bundles manifest file is present and clients shouldn't call the command unless the server is advertising the capability, which only happens if the clonebundles extension is enabled and the manifest file exists.
Wed, 04 Nov 2015 23:48:15 +0900 templatefilters: try round-trip utf-8 conversion by json filter (issue4933) stable
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Nov 2015 23:48:15 +0900] rev 26856
templatefilters: try round-trip utf-8 conversion by json filter (issue4933) As JSON string is known to be a unicode, we should try round-trip conversion for localstr type. This patch tests localstr type explicitly because encoding.fromlocal() may raise Abort for undecodable str, which is probably not what we want. Maybe we can refactor json filter to use encoding module more later. Still "{desc|json}" can't round-trip because showdescription() modifies a localstr object.
Tue, 03 Nov 2015 12:16:54 -0800 exchange: do not attempt clone bundle if local repo is non-empty (issue4932) stable
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 03 Nov 2015 12:16:54 -0800] rev 26855
exchange: do not attempt clone bundle if local repo is non-empty (issue4932)
Tue, 03 Nov 2015 12:15:14 -0800 test-clonebundles.t: add test for incremental pull stable
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 03 Nov 2015 12:15:14 -0800] rev 26854
test-clonebundles.t: add test for incremental pull This demonstrates issue4932.
Tue, 03 Nov 2015 22:44:57 +0900 i18n: make sure to include translation of (DEPRECATED) stable
Yuya Nishihara <yuya@tcha.org> [Tue, 03 Nov 2015 22:44:57 +0900] rev 26853
i18n: make sure to include translation of (DEPRECATED) This patch replaces old "DEPRECATED" msgid by "(DEPRECATED)" if that .po file does not have "(DEPRECATED)" but have "... (DEPRECATED)". It is necessary to hide deprecated options correctly.
Tue, 03 Nov 2015 22:39:26 +0900 i18n: do not abuse msgstr of "DEPRECATED" to check for bad translation stable
Yuya Nishihara <yuya@tcha.org> [Tue, 03 Nov 2015 22:39:26 +0900] rev 26852
i18n: do not abuse msgstr of "DEPRECATED" to check for bad translation Because 44cc9f63a2f1 requires the msgstr of "(DEPRECATED)", old *.po files must be blamed. Using "DEPRECATED" would just hide the error. For example, "LANG=da_DK.UTF-8 hg help serve" fails to hide deprecated options right now, but check-translation.py couldn't detect it because da.po has outdated translation of "DEPRECATED".
Mon, 02 Nov 2015 12:12:24 -0800 filemerge.prompt: separate out choice selection and action
Siddharth Agarwal <sid0@fb.com> [Mon, 02 Nov 2015 12:12:24 -0800] rev 26851
filemerge.prompt: separate out choice selection and action This will make future patches cleaner.
Mon, 02 Nov 2015 12:25:15 -0800 test-merge-prompt.t: add tests for linear updates + change/delete conflicts
Siddharth Agarwal <sid0@fb.com> [Mon, 02 Nov 2015 12:25:15 -0800] rev 26850
test-merge-prompt.t: add tests for linear updates + change/delete conflicts Turns out this bit of code was woefully untested.
Sat, 24 Oct 2015 16:25:16 -0700 test-pathencode.py: drop support for Python 2.4
Siddharth Agarwal <sid0@fb.com> [Sat, 24 Oct 2015 16:25:16 -0700] rev 26849
test-pathencode.py: drop support for Python 2.4
Sat, 24 Oct 2015 16:23:42 -0700 hgweb.server: drop support for Python 2.4
Siddharth Agarwal <sid0@fb.com> [Sat, 24 Oct 2015 16:23:42 -0700] rev 26848
hgweb.server: drop support for Python 2.4
Sat, 24 Oct 2015 15:56:16 -0700 util: drop Python 2.4 compat by directly importing md5 and sha1
Siddharth Agarwal <sid0@fb.com> [Sat, 24 Oct 2015 15:56:16 -0700] rev 26847
util: drop Python 2.4 compat by directly importing md5 and sha1 There's been a fair amount of cruft here over the years, which we can all just get rid of now.
Mon, 02 Nov 2015 23:37:49 +0800 hgweb: replace some str.split() calls by str.partition() or str.rpartition()
Anton Shestakov <av6@dwimlabs.net> [Mon, 02 Nov 2015 23:37:49 +0800] rev 26846
hgweb: replace some str.split() calls by str.partition() or str.rpartition() Since Python 2.5 str has new methods: partition and rpartition. They are more specialized than the usual split and rsplit, and they sometimes convey the intent of code better and also are a bit faster (faster than split/rsplit with maxsplit specified). Let's use them in appropriate places for a small speedup. Example performance (partition): $ python -m timeit 'assert "apple|orange|banana".split("|")[0] == "apple"' 1000000 loops, best of 3: 0.376 usec per loop $ python -m timeit 'assert "apple|orange|banana".split("|", 1)[0] == "apple"' 1000000 loops, best of 3: 0.327 usec per loop $ python -m timeit 'assert "apple|orange|banana".partition("|")[0] == "apple"' 1000000 loops, best of 3: 0.214 usec per loop Example performance (rpartition): $ python -m timeit 'assert "apple|orange|banana".rsplit("|")[-1] == "banana"' 1000000 loops, best of 3: 0.372 usec per loop $ python -m timeit 'assert "apple|orange|banana".rsplit("|", 1)[-1] == "banana"' 1000000 loops, best of 3: 0.332 usec per loop $ python -m timeit 'assert "apple|orange|banana".rpartition("|")[-1] == "banana"' 1000000 loops, best of 3: 0.219 usec per loop
Mon, 02 Nov 2015 23:37:14 +0800 help: replace some str.split() calls by str.partition() or str.rpartition()
Anton Shestakov <av6@dwimlabs.net> [Mon, 02 Nov 2015 23:37:14 +0800] rev 26845
help: replace some str.split() calls by str.partition() or str.rpartition() Since Python 2.5 str has new methods: partition and rpartition. They are more specialized than the usual split and rsplit, and they sometimes convey the intent of code better and also are a bit faster (faster than split/rsplit with maxsplit specified). Let's use them in appropriate places for a small speedup. Example performance (partition): $ python -m timeit 'assert "apple|orange|banana".split("|")[0] == "apple"' 1000000 loops, best of 3: 0.376 usec per loop $ python -m timeit 'assert "apple|orange|banana".split("|", 1)[0] == "apple"' 1000000 loops, best of 3: 0.327 usec per loop $ python -m timeit 'assert "apple|orange|banana".partition("|")[0] == "apple"' 1000000 loops, best of 3: 0.214 usec per loop Example performance (rpartition): $ python -m timeit 'assert "apple|orange|banana".rsplit("|")[-1] == "banana"' 1000000 loops, best of 3: 0.372 usec per loop $ python -m timeit 'assert "apple|orange|banana".rsplit("|", 1)[-1] == "banana"' 1000000 loops, best of 3: 0.332 usec per loop $ python -m timeit 'assert "apple|orange|banana".rpartition("|")[-1] == "banana"' 1000000 loops, best of 3: 0.219 usec per loop
Sat, 24 Oct 2015 01:54:46 +0200 convert: test clean p2 file missing
Mads Kiilerich <madski@unity3d.com> [Sat, 24 Oct 2015 01:54:46 +0200] rev 26844
convert: test clean p2 file missing 216fa1ba9993 introduced "clever" reuse of p2 but did that convert could fail with abort: f1@f73e02ae52c5: not found in manifest! when it tried to reuse a file from p2 but the file didn't exist there, for example because filemap changes. 5ca587348875 fixed that (using changes from a75d24539aba), but with a quite different reasoning and test case. Add another test that makes sure this case is covered too.
Mon, 02 Nov 2015 11:56:59 +0000 uescape: also encode non-printable char under 128
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 11:56:59 +0000] rev 26843
uescape: also encode non-printable char under 128 We were assuming everything under 128 was printable ascii, but there are a lot of control characters in that range that can't simply be included in json and other targets. We forcibly encode everything under 32, because they are either control char or oddly printable (like tab or line ending). We also add the hypothesis-powered test that caught this.
Sat, 24 Oct 2015 12:46:03 +0100 testing: add hypothesis fuzz testing
David R. MacIver <david@drmaciver.com> [Sat, 24 Oct 2015 12:46:03 +0100] rev 26842
testing: add hypothesis fuzz testing Hypothesis a library for adding fuzzing over a range of structure data to your test suite: http://hypothesis.readthedocs.org/en/latest/ This adds the ability to build tests using Hypothesis within the Mercurial test suite. New tests and fixes using this helpers comes in later changesets.
Mon, 02 Nov 2015 13:00:45 +0000 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 13:00:45 +0000] rev 26841
merge with stable
Sun, 01 Nov 2015 13:04:14 -0600 Added signature for changeset 47dd34f2e727 stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Nov 2015 13:04:14 -0600] rev 26840
Added signature for changeset 47dd34f2e727
Sun, 01 Nov 2015 13:04:09 -0600 Added tag 3.6 for changeset 47dd34f2e727 stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Nov 2015 13:04:09 -0600] rev 26839
Added tag 3.6 for changeset 47dd34f2e727
Sun, 01 Nov 2015 08:38:56 +0900 i18n: look translation of both "DEPRECATED" and "(DEPRECATED)" up stable 3.6
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 01 Nov 2015 08:38:56 +0900] rev 26838
i18n: look translation of both "DEPRECATED" and "(DEPRECATED)" up Since 44cc9f63a2f1, deprecated commands, options and so on are detected by "(DEPRECATED)" instead of "DEPRECATED". "hg.pot" generated from recent source files doesn't contain msgid "DEPRECATED", and looking the translation of "DEPRECATED" up in up-to-date *.po files works incorrectly. But on the other hand, there are still old *.po files, which contain msgid "DEPRECATED" but not "(DEPRECATED)". Looking the translation of "(DEPRECATED)" up in such old *.po files also works incorrectly. This patch resolves this problem by looking translation of both "DEPRECATED" and "(DEPRECATED)" up. This should work correctly, because previous patch makes "deprecated" checker be applied only on translations, of which msgid contains exact "(DEPRECATED)" string. 'p.msgstr' examination in 'deprecatedsetup()' is needed to ignore untranslated entries. This also makes 'deprecatedpe.msgstr' examination in 'deprecated()' meaningless.
Sun, 01 Nov 2015 08:38:56 +0900 i18n: fix regexp pattern to detect translation for DEPRECATED stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 01 Nov 2015 08:38:56 +0900] rev 26837
i18n: fix regexp pattern to detect translation for DEPRECATED Since 44cc9f63a2f1, deprecated commands, options and so on are detected by "(DEPRECATED)" instead of "DEPRECATED". Therefore, 'deprecated' checker in i18n/check-translation.py should check translation, of which msgid contains "(DEPRECATED)" instead of "DEPRECATED". At glance, it seems to do so, but it actually doesn't, because Python regexp treats "()" as grouping of patterns and "(DEPRECATED)" matches only against "DEPRECATED".
Sat, 31 Oct 2015 21:45:46 -0400 scmutil: abort if an empty revision is given to revpair() stable
Matt Harbison <matt_harbison@yahoo.com> [Sat, 31 Oct 2015 21:45:46 -0400] rev 26836
scmutil: abort if an empty revision is given to revpair() When using 'extdiff --patch' to check the changes in a rebase, 'precursors(x)' evaluated to an empty set because I forgot the --hidden flag, so the other revision was used as the replacement for the empty set. The result was the patch for the other revision was diffed against itself, and the tool saying there were no differences. That's misleading since the expected diff args were silently changed, so it's better to bail out. The other uses of scmutil.revpair() are commands.diff and commands.status, and it doesn't make sense to allow an empty revision there either. The code here was suggested by Yuya Nishihara.
Sun, 01 Nov 2015 15:24:57 -0200 i18n-pt_BR: synchronized with a9ed5a8fc5e0 stable
Wagner Bruna <wbruna@yahoo.com> [Sun, 01 Nov 2015 15:24:57 -0200] rev 26835
i18n-pt_BR: synchronized with a9ed5a8fc5e0
Sun, 01 Nov 2015 05:34:27 +0900 i18n-ja: synchronized with 6474b64045fb stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 01 Nov 2015 05:34:27 +0900] rev 26834
i18n-ja: synchronized with 6474b64045fb
Mon, 26 Oct 2015 14:19:37 -0400 packaging: rework version detection and declaration (issue4912) stable
Augie Fackler <augie@google.com> [Mon, 26 Oct 2015 14:19:37 -0400] rev 26833
packaging: rework version detection and declaration (issue4912) Previously the -rc in our rc tags got dropped, meaning that those packages looked newer to the packaging system than the later release build. This rectifies the issue, though some damage may already have been done on 3.6-rc builds. I'm mostly cargo-culting the RPM version format - there don't appear to be rules for RPM about how to handle this. Hopefully an RPM enthusiast can fix up what I've done as a followup.
Tue, 27 Oct 2015 12:34:05 +0800 hgweb: escape class keyword when used as a js object property (issue4913) stable
Anton Shestakov <av6@dwimlabs.net> [Tue, 27 Oct 2015 12:34:05 +0800] rev 26832
hgweb: escape class keyword when used as a js object property (issue4913)
Sat, 24 Oct 2015 18:58:57 +0900 localrepo: discard objects in _filecache at transaction failure (issue4876) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 24 Oct 2015 18:58:57 +0900] rev 26831
localrepo: discard objects in _filecache at transaction failure (issue4876) 'repo.invalidate()' deletes 'filecache'-ed properties by 'filecache.__delete__()' below via 'delattr(unfiltered, k)'. But cached objects are still kept in 'repo._filecache'. def __delete__(self, obj): try: del obj.__dict__[self.name] except KeyError: raise AttributeError(self.name) If 'repo' object is reused even after failure of command execution, referring 'filecache'-ed property may reuse one kept in 'repo._filecache', even if reloading from a file is expected. Executing command sequence on command server is a typical case of this situation (5c0f5db65c6b also tried to fix this issue). For example: 1. start a command execution 2. 'changelog.delayupdate()' is invoked in a transaction scope This replaces own 'opener' by '_divertopener()' for additional accessing to '00changelog.i.a' (aka "pending file"). 3. transaction is aborted, and command (1) execution is ended After 'repo.invalidate()' at releasing store lock, changelog object above (= 'opener' of it is still replaced) is deleted from 'repo.__dict__', but still kept in 'repo._filecache'. 4. start next command execution with same 'repo' 5. referring 'repo.changelog' may reuse changelog object kept in 'repo._filecache' according to timestamp of '00changelog.i' '00changelog.i' is truncated at transaction failure (even though this truncation is unintentional one, as described later), and 'st_mtime' of it is changed. But 'st_mtime' doesn't have enough resolution to always detect this truncation, and invalid changelog object kept in 'repo._filecache' is reused occasionally. Then, "No such file or directory" error occurs for '00changelog.i.a', which is already removed at (3). This patch discards objects in '_filecache' other than dirstate at transaction failure. Changes in 'invalidate()' can't be simplified by 'self._filecache = {}', because 'invalidate()' should keep dirstate in 'self._filecache' 'repo.invalidate()' at "hg qpush" failure is removed in this patch, because now it is redundant. This patch doesn't make 'repo.invalidate()' always discard objects in '_filecache', because 'repo.invalidate()' is invoked also at unlocking store lock. - "always discard objects in filecache at unlocking" may cause serious performance problem for subsequent procedures at normal execution - but it is impossible to "discard objects in filecache at unlocking only at failure", because 'releasefn' of lock can't know whether a lock scope is terminated normally or not BTW, using "with" statement described in PEP343 for lock may resolve this ? After this patch, truncation of '00changelog.i' still occurs at transaction failure, even though newly added revisions exist only in '00changelog.i.a' and size of '00changelog.i' isn't changed by this truncation. Updating 'st_mtime' of '00changelog.i' implied by this redundant truncation also affects cache behavior as described above. This will be fixed by dropping '00changelog.i' at aborting from the list of files to be truncated in transaction.
Wed, 28 Oct 2015 16:27:09 +0100 demandimport: fix TypeError when importing Python regex library (issue4920) stable
Gábor Stefanik <gabor.stefanik@nng.com> [Wed, 28 Oct 2015 16:27:09 +0100] rev 26830
demandimport: fix TypeError when importing Python regex library (issue4920)
Sat, 24 Oct 2015 00:39:22 +0100 bundle2: attribute remote failures to remote (issue4788) stable
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 24 Oct 2015 00:39:22 +0100] rev 26829
bundle2: attribute remote failures to remote (issue4788) Before bundle2, hook output from hook failures was prefixed with "remote: ". Up to this point with bundle2, the output was converted to the message to print in an Abort exception. This had 2 implications: 1) It was unclear whether an error message came from the local repo or the remote 2) The exit code changed from 1 to 255 This patch changes the handling of error:abort bundle2 parts during push to prefix the error message with "remote: ". This restores the old behavior. We still preserve the behavior of raising an Abort during bundle2 application failure. This is a regression from pre-bundle2 because the exit code changed. Because we no longer raise an Abort with the remote's message, we needed to insert a message for the new Abort. So, I invented a new error message for that. This is another change from pre-bundle2. However, I like the new error message because it states unambiguously who aborted the push failed, which I think is important for users so they can decide what's next.
Sat, 24 Oct 2015 00:39:26 +0100 tests: add tests for remote hook output (issue4788) stable
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 24 Oct 2015 00:39:26 +0100] rev 26828
tests: add tests for remote hook output (issue4788) The added tests don't agree in their output. This demonstrates a difference in `hg push` behavior between pre-bundle2 and bundle2. A subsequent patch will attempt to restore some of the pre-bundle2 behavior to bundle2.
Sat, 24 Oct 2015 06:59:26 +0100 help: mention alias and revsetalias in description of HGPLAINEXCEPT stable
Yuya Nishihara <yuya@tcha.org> [Sat, 24 Oct 2015 06:59:26 +0100] rev 26827
help: mention alias and revsetalias in description of HGPLAINEXCEPT
Fri, 23 Oct 2015 11:04:53 -0400 debugrevlog: cope with empty revlog files stable
Augie Fackler <augie@google.com> [Fri, 23 Oct 2015 11:04:53 -0400] rev 26826
debugrevlog: cope with empty revlog files I have no idea where it came from, but my clone of Mercurial has an empty filelog for `contrib/hgfixes/__init__.py` - it's *valid*, just contains no nodes. Without this change, debugrevlog crashes with a zero division error.
Fri, 23 Oct 2015 21:27:29 +0200 largefiles: don't mute and obfuscate http errors when putlfile fails stable
Mads Kiilerich <madski@unity3d.com> [Fri, 23 Oct 2015 21:27:29 +0200] rev 26825
largefiles: don't mute and obfuscate http errors when putlfile fails 'unexpected putlfile response: None' when an http error occurs is not very helpful. Instead, leave the handling of urllib2.HTTPError exceptions to other layers.
Fri, 23 Oct 2015 21:27:29 +0200 largefiles: test coverage of error handling from putlfile stable
Mads Kiilerich <madski@unity3d.com> [Fri, 23 Oct 2015 21:27:29 +0200] rev 26824
largefiles: test coverage of error handling from putlfile This reveals a wrong and unhelpful 'unexpected putlfile response'.
Fri, 23 Oct 2015 21:27:29 +0200 largefiles: check hash of files in the store before copying to working dir stable
Mads Kiilerich <madski@unity3d.com> [Fri, 23 Oct 2015 21:27:29 +0200] rev 26823
largefiles: check hash of files in the store before copying to working dir If the store somehow got corrupted, users could end up in weird situations that were very hard to recover from or lead to propagation of the corruption. Instead, spend the extra time checking the hash when copying to the working directory. If it doesn't match, emit a warning, and don't put wrong content in the working directory.
Fri, 23 Oct 2015 21:27:29 +0200 largefiles: test coverage of handling of store corruption stable
Mads Kiilerich <madski@unity3d.com> [Fri, 23 Oct 2015 21:27:29 +0200] rev 26822
largefiles: test coverage of handling of store corruption This reveals that update might put a corrupted largefile in the working directory where it will show up as modified and ready for commit.
Fri, 23 Oct 2015 06:06:22 -0400 merge: improve clarity of table in update docstring stable
Augie Fackler <augie@google.com> [Fri, 23 Oct 2015 06:06:22 -0400] rev 26821
merge: improve clarity of table in update docstring
Thu, 22 Oct 2015 18:59:03 +0000 ui: support paths.default-push without paths.default set (issue4914) stable
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 22 Oct 2015 18:59:03 +0000] rev 26820
ui: support paths.default-push without paths.default set (issue4914) This behavior regressed as part of the paths API refactoring. Previous behavior was to accept "default-push" without "default" defined. Current behavior aborts with "default repository not configured!." This patch restores the old behavior and adds test coverage for the scenario, which was absent before.
Wed, 21 Oct 2015 16:21:27 -0500 bookmarks: don't allow pushing new head for existing mark with -B (issue4400) stable
Matt Mackall <mpm@selenic.com> [Wed, 21 Oct 2015 16:21:27 -0500] rev 26819
bookmarks: don't allow pushing new head for existing mark with -B (issue4400)
Tue, 20 Oct 2015 18:46:00 -0400 commands: fix help for debugobsolete stable
timeless <timeless@mozdev.org> [Tue, 20 Oct 2015 18:46:00 -0400] rev 26818
commands: fix help for debugobsolete
Wed, 21 Oct 2015 00:18:11 +0200 largefiles: fix explicit commit of normal/largefile switch stable
Mads Kiilerich <madski@unity3d.com> [Wed, 21 Oct 2015 00:18:11 +0200] rev 26817
largefiles: fix explicit commit of normal/largefile switch Commit of corresponding normal/largefiles pairs would only commit the standin. That is usually fine, except if either the normal file or the standin is a remove while the other is an add. In that case it would either give duplicate colliding entries or lose the file. Instead, commit both filenames if one of them is a remove.
Wed, 21 Oct 2015 00:10:46 +0200 largefiles: test coverage of explicit commit of normal/largefile switch stable
Mads Kiilerich <madski@unity3d.com> [Wed, 21 Oct 2015 00:10:46 +0200] rev 26816
largefiles: test coverage of explicit commit of normal/largefile switch This reveals that a switch from normal to largefile violates the normal largefile invariant and gives a manifest with both a normal and standin file in the repository, while a switch from largefile to normal gives nothing. Not good.
Tue, 20 Oct 2015 16:00:02 -0500 Added signature for changeset b66e3ca0b90c stable
Matt Mackall <mpm@selenic.com> [Tue, 20 Oct 2015 16:00:02 -0500] rev 26815
Added signature for changeset b66e3ca0b90c
Tue, 20 Oct 2015 15:59:58 -0500 Added tag 3.6-rc for changeset b66e3ca0b90c stable
Matt Mackall <mpm@selenic.com> [Tue, 20 Oct 2015 15:59:58 -0500] rev 26814
Added tag 3.6-rc for changeset b66e3ca0b90c
Tue, 20 Oct 2015 15:59:10 -0500 merge default into stable for code freeze stable 3.6-rc
Matt Mackall <mpm@selenic.com> [Tue, 20 Oct 2015 15:59:10 -0500] rev 26813
merge default into stable for code freeze
Mon, 19 Oct 2015 16:49:54 +0200 convert: fix Python syntax in 'splice in' message
Mads Kiilerich <madski@unity3d.com> [Mon, 19 Oct 2015 16:49:54 +0200] rev 26812
convert: fix Python syntax in 'splice in' message Instead of reporting spliced in ['82544090e14fe18091e04f1fb0f0d7991cbe6e7e'] as parents of 369fd983d9e13330e9f12d9fce820deae84ea223 report spliced in 82544090e14fe18091e04f1fb0f0d7991cbe6e7e as parents of 369fd983d9e13330e9f12d9fce820deae84ea223
Mon, 19 Oct 2015 16:29:35 +0200 rebase: fix wrong 'no changes to commit' when using --collapse
Mads Kiilerich <madski@unity3d.com> [Mon, 19 Oct 2015 16:29:35 +0200] rev 26811
rebase: fix wrong 'no changes to commit' when using --collapse --collapse will do that rebase doesn't commit until the final commit. The lack of a new commit would make it look like the rebase didn't contribute any changes. Instead, only warn about no commits when not using --collapse.
Mon, 19 Oct 2015 15:47:40 -0700 pull: all pass along extra opargs
Sean Farley <sean@farley.io> [Mon, 19 Oct 2015 15:47:40 -0700] rev 26810
pull: all pass along extra opargs Wihtout this patch, commands.pull silently drops opargs defeating the whole purpose of the argument.
Mon, 19 Oct 2015 15:43:35 -0700 push: all pass along opargs
Sean Farley <sean@farley.io> [Mon, 19 Oct 2015 15:43:35 -0700] rev 26809
push: all pass along opargs Wihtout this patch, commands.push silently drops opargs defeating the whole purpose of the argument.
Thu, 15 Oct 2015 17:28:26 -0400 check-code: allow argument passing py2.6ism
timeless <timeless@mozdev.org> [Thu, 15 Oct 2015 17:28:26 -0400] rev 26808
check-code: allow argument passing py2.6ism this backs out 131f7fe06e9e, because Python2.5 support was dropped
Thu, 15 Oct 2015 17:24:42 -0400 mail: drop python 2.5 self.sock.read workaround
timeless <timeless@mozdev.org> [Thu, 15 Oct 2015 17:24:42 -0400] rev 26807
mail: drop python 2.5 self.sock.read workaround
Thu, 15 Oct 2015 17:21:08 -0400 url: drop support for python2.5
timeless <timeless@mozdev.org> [Thu, 15 Oct 2015 17:21:08 -0400] rev 26806
url: drop support for python2.5
Thu, 15 Oct 2015 17:19:11 -0400 win32: drop reference to python2.5
timeless <timeless@mozdev.org> [Thu, 15 Oct 2015 17:19:11 -0400] rev 26805
win32: drop reference to python2.5
Mon, 19 Oct 2015 21:36:12 -0700 editmerge: dequote other use of $ED
Ryan McElroy <rmcelroy@fb.com> [Mon, 19 Oct 2015 21:36:12 -0700] rev 26804
editmerge: dequote other use of $ED We want to support editors with parameters, eg EDITOR="vim -O" or whatever. So remove the quotes from around $ED and assume that the editor variable is properly escaped already.
Mon, 19 Oct 2015 16:01:55 +0200 bundlerepo: properly extract compressed changegroup from bundle2
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 19 Oct 2015 16:01:55 +0200] rev 26803
bundlerepo: properly extract compressed changegroup from bundle2 Before this bundle repository were unable to work with compressed bundle2. We use the same approach as with bundle1, we extract the changegroup in uncompressed form into a temporary file.
Fri, 02 Oct 2015 23:21:39 -0700 bundle2: make unbundle.compressed return True when compressed
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 02 Oct 2015 23:21:39 -0700] rev 26802
bundle2: make unbundle.compressed return True when compressed We were returning 'False' in all cases, even when the bundle2 was actually compressed.
(0) -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 tip