Sun, 19 Apr 2015 11:37:29 +0100 help: fix typo commited -> committed stable
Javi Merino <merino.jav@gmail.com> [Sun, 19 Apr 2015 11:37:29 +0100] rev 24814
help: fix typo commited -> committed
Sat, 18 Apr 2015 13:08:41 -0400 largefiles: don't mangle filesets when fixing up the log matcher stable
Matt Harbison <matt_harbison@yahoo.com> [Sat, 18 Apr 2015 13:08:41 -0400] rev 24813
largefiles: don't mangle filesets when fixing up the log matcher The fileset-generated.t test previously failed with this: + hg: parse error: unknown identifier: .hglf/modified + (did you mean 'modified'?) + [255] Filesets will find the standins on their own, without any help. While that's useful for some things like modified(), clean(), etc., it is wrong for things like size(). Proper fileset support for largefiles is not trivial, but this was failing with just the extension enabled on a normal repo.
Sat, 18 Apr 2015 00:34:38 -0400 largefiles: don't crash when cloning to a remote repo stable
Matt Harbison <matt_harbison@yahoo.com> [Sat, 18 Apr 2015 00:34:38 -0400] rev 24812
largefiles: don't crash when cloning to a remote repo The immediate crash was when checking for requirements immediately after this, but lfcommands.downloadlfiles() will also crash if --all-largefiles is specified. That has been in place since atleast 5884812686f7 (2.3-rc) without anyone noticing. I can't tell from the peer classes if there's a way to make the custom largefile functionality work in this case, but atleast it doesn't crash.
Fri, 17 Apr 2015 14:12:01 -0700 run-tests: don't error when glob matched line ends with backslash stable
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 17 Apr 2015 14:12:01 -0700] rev 24811
run-tests: don't error when glob matched line ends with backslash As part of writing another test, I triggered an array index error in glob match processing code by having a (glob) line end in a single backslash (which is the escape character). Adding a simple bounds check prevents the error in run-tests.py.
Fri, 17 Apr 2015 09:46:43 -0700 histedit: change state format to allow non-hash lines stable
Durham Goode <durham@fb.com> [Fri, 17 Apr 2015 09:46:43 -0700] rev 24810
histedit: change state format to allow non-hash lines The existing state serialization format assumed the rule line consisted of an action and a hash. In our external extension that adds 'exec' this is not the case (there is no hash, just the shell command). So let's change the format to be more generic with just an action and a remainder, and the various commands can handle it as they wish. Flagged for stable since we want to get this format tweak in before the new format goes live in the release.
Fri, 17 Apr 2015 15:42:20 -0500 tests: fix portability issue with test-merge-tools stable
Matt Mackall <mpm@selenic.com> [Fri, 17 Apr 2015 15:42:20 -0500] rev 24809
tests: fix portability issue with test-merge-tools Not sure how this ever worked.
Fri, 17 Apr 2015 12:39:55 -0400 test-rename-merge2: fix test failure on Windows stable
Matt Harbison <matt_harbison@yahoo.com> [Fri, 17 Apr 2015 12:39:55 -0400] rev 24808
test-rename-merge2: fix test failure on Windows Windows and OpenVMS use double quote for shell quoting, posix uses single quote. Since the other test lines added in 5668202cfaaf don't include the quotes, this was presumably an oversight.
Fri, 17 Apr 2015 12:11:14 -0400 test-add.t: fix output difference between Windows and OS X (issue4603) stable
Matt Harbison <matt_harbison@yahoo.com> [Fri, 17 Apr 2015 12:11:14 -0400] rev 24807
test-add.t: fix output difference between Windows and OS X (issue4603)
Fri, 17 Apr 2015 23:22:58 +0900 tags: do not abort if failed to write lock file to save cache stable
Yuya Nishihara <yuya@tcha.org> [Fri, 17 Apr 2015 23:22:58 +0900] rev 24806
tags: do not abort if failed to write lock file to save cache LockHeld wasn't enough to suppress error during acquiring lock. If .hg directory is read-only, LockUnavailable will be raised. $ chmod ugo-w .hg $ hg identify abort: could not lock working directory of ...: Permission denied
Thu, 16 Apr 2015 20:58:41 -0500 Added signature for changeset e89f909edffa stable
Matt Mackall <mpm@selenic.com> [Thu, 16 Apr 2015 20:58:41 -0500] rev 24805
Added signature for changeset e89f909edffa
Thu, 16 Apr 2015 20:58:35 -0500 Added tag 3.4-rc for changeset e89f909edffa stable
Matt Mackall <mpm@selenic.com> [Thu, 16 Apr 2015 20:58:35 -0500] rev 24804
Added tag 3.4-rc for changeset e89f909edffa
Thu, 16 Apr 2015 20:57:51 -0500 merge default into stable for 3.4 freeze stable 3.4-rc
Matt Mackall <mpm@selenic.com> [Thu, 16 Apr 2015 20:57:51 -0500] rev 24803
merge default into stable for 3.4 freeze
Thu, 16 Apr 2015 20:56:43 -0500 tests: fix up whitespace complaint
Matt Mackall <mpm@selenic.com> [Thu, 16 Apr 2015 20:56:43 -0500] rev 24802
tests: fix up whitespace complaint
Thu, 16 Apr 2015 20:52:37 -0500 tests: fix test-tags on vfat
Matt Mackall <mpm@selenic.com> [Thu, 16 Apr 2015 20:52:37 -0500] rev 24801
tests: fix test-tags on vfat The unix conditional section wasn't cleaning up sufficiently.
Thu, 16 Apr 2015 20:31:44 -0500 tests: ignore sha512 flag in bundle2 for py2.4
Matt Mackall <mpm@selenic.com> [Thu, 16 Apr 2015 20:31:44 -0500] rev 24800
tests: ignore sha512 flag in bundle2 for py2.4
Thu, 16 Apr 2015 04:01:51 -0400 bundle2-localpeer: properly propagate the server output on error (issue4594)
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 16 Apr 2015 04:01:51 -0400] rev 24799
bundle2-localpeer: properly propagate the server output on error (issue4594) In case of errors, output parts salvaged from the reply bundle need to be processed for outputting their content. This concludes our quest for fixing issue4594.
Thu, 16 Apr 2015 05:09:37 -0400 bundle2: add on more layer of exception catching in localrepo.unbundle
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 16 Apr 2015 05:09:37 -0400] rev 24798
bundle2: add on more layer of exception catching in localrepo.unbundle We are going to add output related logic in this function. We do the indentation first to help next changeset readability. We need a new try except because we want to handle output on any exception, including PushRaced ones.
Thu, 16 Apr 2015 03:17:37 -0400 bundle2-wireproto: properly propagate the server output on error (issue4594)
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 16 Apr 2015 03:17:37 -0400] rev 24797
bundle2-wireproto: properly propagate the server output on error (issue4594) In case of errors, output parts salvaged from the reply bundle are re-injected into the bundle carrying the exception. We still need to fix the situation for non-wireprotocol push.
Thu, 16 Apr 2015 03:56:50 -0400 bundle2: refactor error bundle creation for the wireprotocol
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 16 Apr 2015 03:56:50 -0400] rev 24796
bundle2: refactor error bundle creation for the wireprotocol We want to add output information to the error bundle. Before doing this, we rework the code to have a single bundler creation and return statement. This will make the update with the output simpler as only one place will have to be touched.
Thu, 16 Apr 2015 03:17:01 -0400 bundle2: store the salvaged output on the exception object
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 16 Apr 2015 03:17:01 -0400] rev 24795
bundle2: store the salvaged output on the exception object The re-handling of output is happening in some 'unbundle' callers. We have to transmit the output information to this place so we stick it on the exception. This is the third step in our quest for preserving the server output on error (issue4594). We want to be able to copy the output part from the aborted reply into the exception bundle.
Thu, 16 Apr 2015 03:16:04 -0400 bundle2: add a 'salvageoutput' method on bundle20
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 16 Apr 2015 03:16:04 -0400] rev 24794
bundle2: add a 'salvageoutput' method on bundle20 This method returns a copy of all 'output' parts added to the bundler. This is the second step in our quest for preserving the server output on error (issue4594). We want to be able to copy the output parts from the aborted reply into the exception bundle. The function will be used in a later patch.
Thu, 16 Apr 2015 03:15:28 -0400 bundle2: add a 'copy' method on parts
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 16 Apr 2015 03:15:28 -0400] rev 24793
bundle2: add a 'copy' method on parts This is the first step in our quest for preserving the server output on error (issue4594). We want to be able to copy the output parts from the aborted reply into the exception bundle. The function will be used in a later patch.
Thu, 16 Apr 2015 05:36:49 -0400 hooks: add a 'txnabort' hook
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 16 Apr 2015 05:36:49 -0400] rev 24792
hooks: add a 'txnabort' hook This hook will be called whenever a transaction is aborted. This will make it easy for people to clean up temporary content they may have created during a transaction.
Thu, 16 Apr 2015 05:41:07 -0400 help: document the ''HG_TXNID'' environment variable during hooks
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 16 Apr 2015 05:41:07 -0400] rev 24791
help: document the ''HG_TXNID'' environment variable during hooks We forgot to document the new "transaction ID" mechanism.
Sun, 12 Apr 2015 01:39:21 -0400 match: add a subclass for dirstate normalizing of the matched patterns
Matt Harbison <matt_harbison@yahoo.com> [Sun, 12 Apr 2015 01:39:21 -0400] rev 24790
match: add a subclass for dirstate normalizing of the matched patterns This class is only needed on case insensitive filesystems, and only for wdir context matches. It allows the user to not match the case of the items in the filesystem- especially for naming directories, which dirstate doesn't handle[1]. Making dirstate handle mismatched directory cases is too expensive[2]. Since dirstate doesn't apply to committed csets, this is only created by overriding basectx.match() in workingctx, and only on icasefs. The default arguments have been dropped, because the ctx must be passed to the matcher in order to function. For operations that can apply to both wdir and some other context, this ends up normalizing the filename to the case as it exists in the filesystem, and using that case for the lookup in the other context. See the diff example in the test. Previously, given a directory with an inexact case: - add worked as expected - diff, forget and status would silently ignore the request - files would exit with 1 - commit, revert and remove would fail (even when the commands leading up to them worked): $ hg ci -m "AbCDef" capsdir1/capsdir abort: CapsDir1/CapsDir: no match under directory! $ hg revert -r '.^' capsdir1/capsdir capsdir1\capsdir: no such file in rev 64dae27060b7 $ hg remove capsdir1/capsdir not removing capsdir1\capsdir: no tracked files [1] Globs are normalized, so that the -I and -X don't need to be specified with a case match. Without that, the second last remove (with -X) removes the files, leaving nothing for the last remove. However, specifying the files as 'glob:**.Txt' does not work. Perhaps this requires 're.IGNORECASE'? There are only a handful of places that create matchers directly, instead of being routed through the context.match() method. Some may benefit from changing over to using ctx.match() as a factory function: revset.checkstatus() revset.contains() revset.filelog() revset._matchfiles() localrepository._loadfilter() ignore.ignore() fileset.subrepo() filemerge._picktool() overrides.addlargefiles() lfcommands.lfconvert() kwtemplate.__init__() eolfile.__init__() eolfile.checkrev() acl.buildmatch() Currently, a toplevel subrepo can be named with an inexact case. However, the path auditor gets in the way of naming _anything_ in the subrepo if the top level case doesn't match. That is trickier to handle, because there's the user provided case, the case in the filesystem, and the case stored in .hgsub. This can be fixed next cycle. --- a/tests/test-subrepo-deep-nested-change.t +++ b/tests/test-subrepo-deep-nested-change.t @@ -170,8 +170,15 @@ R sub1/sub2/test.txt $ hg update -Cq $ touch sub1/sub2/folder/bar +#if icasefs + $ hg addremove Sub1/sub2 + abort: path 'Sub1\sub2' is inside nested repo 'Sub1' + [255] + $ hg -q addremove sub1/sub2 +#else $ hg addremove sub1/sub2 adding sub1/sub2/folder/bar (glob) +#endif $ hg status -S A sub1/sub2/folder/bar ? foo/bar/abc The narrowmatcher class may need to be tweaked when that is fixed. [1] http://www.selenic.com/pipermail/mercurial-devel/2015-April/068183.html [2] http://www.selenic.com/pipermail/mercurial-devel/2015-April/068191.html
Sun, 12 Apr 2015 00:29:17 -0400 match: move _normalize() into the match class
Matt Harbison <matt_harbison@yahoo.com> [Sun, 12 Apr 2015 00:29:17 -0400] rev 24789
match: move _normalize() into the match class This will be overridden in an upcoming patch to also deal with dirstate normalization on case insensitive filesystems.
Sat, 17 Jan 2015 03:34:57 +0100 largefiles: always consider updatelfiles 'checked' parameter set
Mads Kiilerich <madski@unity3d.com> [Sat, 17 Jan 2015 03:34:57 +0100] rev 24788
largefiles: always consider updatelfiles 'checked' parameter set mergeupdate already set the flag to update all. This will thus only change overriderevert and scmutilmarktouched ... where the flag effectually also were true. The test coverage thus shows no change. As the flag always is set, it is removed. This is mainly a change for keeping the code simple and consistent and correct, but it should also make it faster in many cases.
Wed, 15 Apr 2015 15:22:16 -0400 largefiles: for update -C, only update largefiles when necessary
Mads Kiilerich <madski@unity3d.com> [Wed, 15 Apr 2015 15:22:16 -0400] rev 24787
largefiles: for update -C, only update largefiles when necessary Before, a --clean update with largefiles would use the "optimization" that it didn't read hashes from standin files before and after the update. Instead of trusting the content of the standin files, it would rehash all the actual largefiles that lfdirstate reported clean and update the standins that didn't have the expected content. It could thus in some "impossible" situations automatically recover from some "largefile got out sync with its standin" issues (even there apparently still were weird corner cases where it could fail). This extra checking is similar to what core --clean intentionally do not do, and it made update --clean unbearable slow. Usually in core Mercurial, --clean will rely on the dirstate to find the files it should update. (It is thus intentionally possible (when trying to trick the system or if there should be bugs) to end up in situations where --clean not will restore the working directory content correctly.) Checking every file when we "know" it is ok is however not an option - that would be too slow. Instead, trust the content of the standin files. Use the same logic for --clean as for linear updates and trust the dirstate and that our "logic" will keep them in sync. It is much cheaper to just rehash the largefiles reported dirty by a status walk and read all standins than to hash largefiles. Most of the changes are just a change of indentation now when the different kinds of updates no longer are handled that differently. Standins for added files are however only written when doing a normal update, while deleted and removed files only will be updated for --clean updates.
Wed, 15 Apr 2015 11:49:44 -0400 subrepo: calculate _relpath for hgsubrepo based on self instead of parent
Matt Harbison <matt_harbison@yahoo.com> [Wed, 15 Apr 2015 11:49:44 -0400] rev 24786
subrepo: calculate _relpath for hgsubrepo based on self instead of parent Prior to 105758d1b37b, the subrelpath() (now _relpath) for hgsubrepo was calculated by removing the root path of the outermost repo from the root path of the subrepo. Since the root paths use platform specific separators, and the relative path is printed by various commands, the output of these commands require a glob (and check-code.py enforces this). In an effort to be generic to all subrepos, 105758d1b37b started calculating this path based on the parent repo, and then joining the subrepo path in .hgsub. One of the tests in test-subrepo.t creates a subrepo inside a directory, so the path being joined contained '/' instead of '\'. This made the test fail with a '~' status, because the glob is unnecessary[1]. Removing them made the test work, but then check-code complains. We can't just drop the check-code rule, because sub-subrepos are still joined with '\'. Presumably the other subrepo types have this issue as well, but there likely isn't a test with git or svn repos inside a subdirectory. This simply restores the exact _relpath value (and output) for hgsubrepos prior to 105758d1b37b. [1] http://www.selenic.com/pipermail/mercurial-devel/2015-April/068720.html
Wed, 15 Apr 2015 11:23:26 -0400 subrepo: backout 93b0e0db7929 to restore reporelpath()
Matt Harbison <matt_harbison@yahoo.com> [Wed, 15 Apr 2015 11:23:26 -0400] rev 24785
subrepo: backout 93b0e0db7929 to restore reporelpath() The path for hgsubrepo needs to be calculated slightly differently from other subrepo types, but can reuse this. See the next patch for details.
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip