Mon, 01 Dec 2014 02:10:57 +0100 tests: clean-up of largefiles tests in test-issue3084.t stable
Mads Kiilerich <madski@unity3d.com> [Mon, 01 Dec 2014 02:10:57 +0100] rev 23417
tests: clean-up of largefiles tests in test-issue3084.t Prepare for adding more test cases to the systematic testing, moving the test from ac3b3a2d976d to another section.
Sat, 29 Nov 2014 19:17:47 -0800 pushkey: gracefully handle prepushkey hook failure (issue4455) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 29 Nov 2014 19:17:47 -0800] rev 23416
pushkey: gracefully handle prepushkey hook failure (issue4455) This allow to gracefully report the failure of the bookmark push and carry on. Before this change set. Local push would plain quit and wireprotocol would failed in various ungraceful way.
Sat, 29 Nov 2014 19:13:35 -0800 hook: raise a more specialized HookAbort exception when a hook fails stable
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 29 Nov 2014 19:13:35 -0800] rev 23415
hook: raise a more specialized HookAbort exception when a hook fails We need to gracefully handle some aborts for pushkey, especially because it leads to a user-facing crash over the wireprotocols. So we need a more specialized exception to catch.
Mon, 01 Dec 2014 15:04:34 -0600 help: fix typo in files help stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Dec 2014 15:04:34 -0600] rev 23414
help: fix typo in files help
Mon, 01 Dec 2014 05:18:12 -0800 revset: fix first and last for generatorset (issue4465) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 01 Dec 2014 05:18:12 -0800] rev 23413
revset: fix first and last for generatorset (issue4465) The code was just plain wrong.
Fri, 28 Nov 2014 02:57:33 +0100 mq: fix update of headers that occur in the "wrong" order stable
Mads Kiilerich <madski@unity3d.com> [Fri, 28 Nov 2014 02:57:33 +0100] rev 23412
mq: fix update of headers that occur in the "wrong" order Mq tried to insert headers in the right order. Sometimes it would stop searching before checking all headers and it could thus duplicate a header instead of replacing it.
Fri, 28 Nov 2014 20:16:15 +0100 subrepo: add status support for ignored files in git subrepos
Mathias De Maré <mathias.demare@gmail.com> [Fri, 28 Nov 2014 20:16:15 +0100] rev 23411
subrepo: add status support for ignored files in git subrepos Retrieving the status of a git subrepo did not show ignored files. Using 'git ls-files', we can retrieve these files and display the correct status.
Wed, 26 Nov 2014 15:37:01 -0800 manifest: document the extra letter in working copy manifest node
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Nov 2014 15:37:01 -0800] rev 23410
manifest: document the extra letter in working copy manifest node As the second developer to get confused by this in November, I'm adding some documentation for the next poor soul.
Fri, 28 Nov 2014 10:59:02 -0800 hgweb: send proper HTTP response after uncaught exception stable
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 28 Nov 2014 10:59:02 -0800] rev 23409
hgweb: send proper HTTP response after uncaught exception This patch fixes a bug where hgweb would send an incomplete HTTP response. If an uncaught exception is raised when hgweb is processing a request, hgweb attempts to send a generic error response and log that exception. The server defaults to chunked transfer coding. If an uncaught exception occurred, it was sending the error response string / chunk properly. However, RFC 7230 Section 4.1 mandates a 0 size last chunk be sent to indicate end of the entity body. hgweb was failing to send this last chunk. As a result, properly written HTTP clients would assume more data was coming and they would likely time out waiting for another chunk to arrive. Mercurial's own test harness was paving over the improper HTTP behavior by not attempting to read the response body if the status code was 500. This incorrect workaround was added in ba6577a19656 and has been removed with this patch.
Sun, 30 Nov 2014 20:06:53 +0100 tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com> [Sun, 30 Nov 2014 20:06:53 +0100] rev 23408
tests: test rebase of merge of target ancestors
Sun, 30 Nov 2014 19:36:03 +0100 tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com> [Sun, 30 Nov 2014 19:36:03 +0100] rev 23407
tests: test coverage of parent order with p1 outside rebase set
Sun, 30 Nov 2014 19:35:54 +0100 tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com> [Sun, 30 Nov 2014 19:35:54 +0100] rev 23406
tests: add test for rebasing merges with ancestors of the rebase destination This shows sub-optimal behaviour. The user gets a merge prompt that it is very hard to justify.
Sun, 30 Nov 2014 19:26:53 +0100 merge: 0 is a valid ancestor different from None
Mads Kiilerich <madski@unity3d.com> [Sun, 30 Nov 2014 19:26:53 +0100] rev 23405
merge: 0 is a valid ancestor different from None Most internal functions can take either a hash or an integer. Merge did however not handle 0 as revision 0. Now it does.
Thu, 27 Nov 2014 12:25:01 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 27 Nov 2014 12:25:01 -0600] rev 23404
merge with stable
Tue, 25 Nov 2014 19:40:54 -0800 revert: look for copy information for all local modifications stable
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 25 Nov 2014 19:40:54 -0800] rev 23403
revert: look for copy information for all local modifications Renaming a file over an existing one marks the file as modified. So we track rename source in modified file too.
Mon, 24 Nov 2014 18:42:56 -0800 rename: properly report removed and added file as modified (issue4458) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Nov 2014 18:42:56 -0800] rev 23402
rename: properly report removed and added file as modified (issue4458) The result of 'hg rm' + 'hg rename' disagreed with the one from 'hg rename --force'. We align them on 'hg move --force' because it agrees with what 'hg status' says after the commit. Stopping reporting a modified file as added puts an end to the hg revert confusion in this situation (issue4458). However, reporting the file as modified also prevents revert from restoring the copy source. We fix this in a later changeset. Git diff also stop reporting the add in the middle of the chain as add. Not sure how important (and even wrong) it is.
Wed, 26 Nov 2014 14:54:16 -0800 manifest: fix a bug where working copy file 'add' mark was buggy stable
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Nov 2014 14:54:16 -0800] rev 23401
manifest: fix a bug where working copy file 'add' mark was buggy Because the same dictionary was used to (1) get node from parent and (2) store annotated version, we could end up with buggy values. For example with a chain of renames: $ hg mv b c $ hg mv a b The value from 'b' would be updated as "<old-a>a", then the value of c would be updated as "<old-b>a'. With the current dictionary sharing this ends up with: '<new-c>' == '<old-a>aa' This value is double-wrong as we should use '<old-b>' and a single 'a'. We now use a read-only value for lookup. The 'test-rename.t' test is impacted because such a chained added file is suddenly detected as such.
Wed, 26 Nov 2014 17:22:09 +0300 merge: be precise about what merged into what in short desc stable
anatoly techtonik <techtonik@gmail.com> [Wed, 26 Nov 2014 17:22:09 +0300] rev 23400
merge: be precise about what merged into what in short desc
Tue, 11 Nov 2014 20:32:10 -0800 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 11 Nov 2014 20:32:10 -0800] rev 23399
docker: add Docker files for running an Apache mod_wsgi server I frequently find myself wanting to run hgweb in a production-like environment, with a real HTTP server and multiple WSGI workers. This patch introduces a Docker environment for running Mercurial under Apache + mod_wsgi. With just a few command executions, it is possible to spin up a Docker container running hgweb. The container is tailored for Mercurial developers wanting to run Mercurial from a source checkout. It is **not** meant to be something suitable for production use. The container provides a default hgweb environment with an empty repository that allows pushes. You can thus start a container and push your favorite repository there for quick testing. The container is designed to allow customizations. Users can provide their own hgweb configurations and mount existing directories containing repositories into the container. The behavior of the container and how to control things is documented in the README.rst file.
Mon, 24 Nov 2014 16:17:02 -0800 merge: use None as filename for base in 'both created' conflicts
Martin von Zweigbergk <martinvonz@google.com> [Mon, 24 Nov 2014 16:17:02 -0800] rev 23398
merge: use None as filename for base in 'both created' conflicts Instead of using a file that we know is not in the common ancestor's maniffest, let's use None. This is safe as the only place that cares about the value (applyupdates) already checks if the item exists in the ancestor.
Mon, 24 Nov 2014 16:42:36 -0800 merge: break out "both renamed a -> b" case
Martin von Zweigbergk <martinvonz@google.com> [Mon, 24 Nov 2014 16:42:36 -0800] rev 23397
merge: break out "both renamed a -> b" case We can further limit the scope of the 2-way merge case by breaking out the case where the file was not created from scratch on both sides but rather renamed in the same way (and is therefore a 3-way merge). This involves copying some code, but it makes it clearer which case the "Note:" in the code refers to.
Mon, 24 Nov 2014 16:16:34 -0800 merge: separate out "both created" cases
Martin von Zweigbergk <martinvonz@google.com> [Mon, 24 Nov 2014 16:16:34 -0800] rev 23396
merge: separate out "both created" cases When 'f' is not in 'ma', 'a' will be 'nullid' and all the if/elif conditions that check whether some one nodeid is equal to 'a' will fail, and the else-clause will instead apply. We can make that more explicit by creating a separate 'm' action for the case where 'a' is 'nullid'. While it does mean copying some code, perhaps it makes it a little clearer which codepaths are possible, and which cases the "Note:" in the code refers to. It also lets us make the debug action messages a little more specific.
Mon, 24 Nov 2014 16:11:22 -0800 merge: indent to prepare for next patch
Martin von Zweigbergk <martinvonz@google.com> [Mon, 24 Nov 2014 16:11:22 -0800] rev 23395
merge: indent to prepare for next patch
Tue, 25 Nov 2014 17:30:05 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 25 Nov 2014 17:30:05 -0600] rev 23394
merge with stable
Tue, 25 Nov 2014 02:31:52 -0600 factotum: convert Plan 9 quoted string to Python string
David Eckhardt <David.Eckhardt@cs.cmu.edu> [Tue, 25 Nov 2014 02:31:52 -0600] rev 23393
factotum: convert Plan 9 quoted string to Python string
Tue, 25 Nov 2014 02:27:31 -0600 plan9: setup check for current python build
Jeff Sickel <jas@corpus-callosum.com> [Tue, 25 Nov 2014 02:27:31 -0600] rev 23392
plan9: setup check for current python build
Wed, 19 Nov 2014 22:27:55 -0500 add: check for the existence of a file matched inexactly before adding it
Matt Harbison <matt_harbison@yahoo.com> [Wed, 19 Nov 2014 22:27:55 -0500] rev 23391
add: check for the existence of a file matched inexactly before adding it The change in 10697f29af2b created a problem on Windows and OS X: --- /usr/local/mercurial/tests/test-issue660.t +++ /usr/local/mercurial/tests/test-issue660.t.err @@ -47,6 +47,8 @@ Should succeed - shadow removed: $ hg add b + adding b/b + b/b does not exist! Prior to the failing 'hg add', the file 'b/b' was added and committed, then 'b' was recursively deleted from the filesystem, file 'b' was created and the delete was recorded with 'hg rm --after'. This add is attempting to record the existence of file 'b'. A filesystem that is not case sensitive prevents dirstate.walk() from skipping its step 3, and step 3 has the effect of inserting removed files into the walk list. The Linux code doesn't run through step 3, and didn't exhibit the problem. It's not clear why a non case sensitive filesystem triggers step 3, given that the path normalization occurs in step 2. Prior to 10697f29af2b, part of the check here was 'f not in repo.dirstate' instead of 'f not in wctx'. Files in the 'r' state are filtered out of context.__contains__() but not dirstate.__contains__(). Therefore the removed file name wasn't added to the list of files to add when checking against dirstate. That change was to allow removed files to be readded, but adding a file that doesn't exist is nonsensical. If the user specifies a missing file, it will be an exact match and will still fail.
Thu, 20 Nov 2014 22:33:40 -0500 tests: choose the proper environment variable style for the platform
Matt Harbison <matt_harbison@yahoo.com> [Thu, 20 Nov 2014 22:33:40 -0500] rev 23390
tests: choose the proper environment variable style for the platform Windows was printing out 'commit $HG_NODE' instead of the actual hash.
Thu, 20 Nov 2014 20:07:34 -0500 tests: fix another multi-statement hook for Windows
Matt Harbison <matt_harbison@yahoo.com> [Thu, 20 Nov 2014 20:07:34 -0500] rev 23389
tests: fix another multi-statement hook for Windows The double quotes are necessary, otherwise it tries to pipe into a program named 'short'. An '&' could serve as a command separator on Windows instead of ';', but I don't see any obvious way to swap these depending on the platform. In this case though, there really wasn't a need for multiple statements.
Wed, 19 Nov 2014 23:41:40 -0500 run-tests: set a default largefiles usercache in the default hgrc file
Matt Harbison <matt_harbison@yahoo.com> [Wed, 19 Nov 2014 23:41:40 -0500] rev 23388
run-tests: set a default largefiles usercache in the default hgrc file This fixes a test failure introduced in 4be754832829 on Windows and OS X, where the cached largefile wasn't being deleted because the named .cache directory didn't exist. It only existed on Linux because the test suite sets $HOME to the directory of the test being run, and Linux uses $HOME/.cache by default. Most of the other largefiles tests explicitly set this value at the top of their scripts, but test-largefiles-update.t didn't pick that up when it was created. Those scripts that do set a value will override this. We could just set the parameter in the test-largefiles-update.t script, but there are a few other non obvious tests that exercise largefiles too. These largefiles end up being cached in the user's real cache, so proper hygiene dictates that this not be left to each individual test script.
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip