Thu, 24 Apr 2014 17:31:20 -0500 committablectx: simplify caching the status
Sean Farley <sean.michael.farley@gmail.com> [Thu, 24 Apr 2014 17:31:20 -0500] rev 21592
committablectx: simplify caching the status Previously, workingctx had custom variables for the unknown, ignored, and clean list of files of status. These then got moved to committablectx and, after the refactoring of localrepo.status, are no longer needed. We, therefore, simplify the whole mess. As a bonus, we are able to remove the need for having 'assert'.
Wed, 23 Apr 2014 16:08:20 -0500 localrepo: remove cache code now handled by _prestatus
Sean Farley <sean.michael.farley@gmail.com> [Wed, 23 Apr 2014 16:08:20 -0500] rev 21591
localrepo: remove cache code now handled by _prestatus This patch removes the last of the 'working' variable that was sprinkled throughout localrepo.status which paves the way for future patches to use the object oriented design of contexts to handle calculating the status.
Wed, 23 Apr 2014 16:06:42 -0500 workingctx: add note about super._prestatus calling manifest
Sean Farley <sean.michael.farley@gmail.com> [Wed, 23 Apr 2014 16:06:42 -0500] rev 21590
workingctx: add note about super._prestatus calling manifest
Wed, 23 Apr 2014 16:06:23 -0500 basectx: preserve loading the cached manifest in _prestatus
Sean Farley <sean.michael.farley@gmail.com> [Wed, 23 Apr 2014 16:06:23 -0500] rev 21589
basectx: preserve loading the cached manifest in _prestatus This is just a copy from localrepo.status and is a small step to removing that method entirely. The prestatus hook is only called for changectx's, thereby ensuring that the same behavior is guaranteed.
Fri, 20 Sep 2013 21:59:34 -0500 localrepo: use new subrev method of context.py
Sean Farley <sean.michael.farley@gmail.com> [Fri, 20 Sep 2013 21:59:34 -0500] rev 21588
localrepo: use new subrev method of context.py With the machinery in place, we use context.subrev instead of testing for a workingctx directly. This allows more flexibility for later patches that will add memctx to the mix.
Fri, 20 Sep 2013 22:07:58 -0500 committablectx: add subrev method to return None
Sean Farley <sean.michael.farley@gmail.com> [Fri, 20 Sep 2013 22:07:58 -0500] rev 21587
committablectx: add subrev method to return None This allows a future patch to use object oriented style to remove an if statement in the status method.
Fri, 20 Sep 2013 21:55:42 -0500 basectx: add subrev method to return the rev of a subrepo given a subpath
Sean Farley <sean.michael.farley@gmail.com> [Fri, 20 Sep 2013 21:55:42 -0500] rev 21586
basectx: add subrev method to return the rev of a subrepo given a subpath This will be used in an upcoming patch to simplify the status method by eliminating an if block.
Tue, 27 May 2014 17:41:20 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 27 May 2014 17:41:20 -0700] rev 21585
merge with stable
Wed, 07 May 2014 17:24:19 -0700 bundle2: fix bundle2 pulling all revs on empty pulls stable
Durham Goode <durham@fb.com> [Wed, 07 May 2014 17:24:19 -0700] rev 21584
bundle2: fix bundle2 pulling all revs on empty pulls When bundle2 was enabled, if hg pull had no commits to pull, it would print 'no changes found' and then download the entire repository from the server. This was caused by heads and common being set to None, which gets treated as heads=cl.heads() and common=[nullid], which means download the entire repo. Pulling bundles without a changegroup is a valid use case (like if we're just updating bookmarks), so this modifes the bundle code to allow not adding changegroups. This is backport of ab5040cd5749.
Wed, 07 May 2014 19:26:15 -0700 exchange: fix bad indentation stable
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 07 May 2014 19:26:15 -0700] rev 21583
exchange: fix bad indentation Those two lines where double indented for no good reasons. This is backport of 71931b789424.
Wed, 07 May 2014 19:28:17 -0700 exchange: propagate arguments to the _getbundleextrapart function stable
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 07 May 2014 19:28:17 -0700] rev 21582
exchange: propagate arguments to the _getbundleextrapart function The arguments was wrongly propagated (again). This a backport of 0055b5b3eb9c
Wed, 07 May 2014 17:20:38 -0700 bundle2: fix configuration name mismatch stable
Durham Goode <durham@fb.com> [Wed, 07 May 2014 17:20:38 -0700] rev 21581
bundle2: fix configuration name mismatch During pulls bundle2 was checking server.bundle2, but during pushes it was checking experimental.bundle2. This makes them both experimental.bundle2. This is a backport of 750c7c14a637
Sat, 08 Mar 2014 19:02:39 +1100 discovery: if a push would create a new head, mention the bookmark name if any
Stephen Lee <sphen.lee@gmail.com> [Sat, 08 Mar 2014 19:02:39 +1100] rev 21580
discovery: if a push would create a new head, mention the bookmark name if any
Wed, 14 May 2014 10:38:05 -0700 revert: use p2 as parent when reverting against it
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 14 May 2014 10:38:05 -0700] rev 21579
revert: use p2 as parent when reverting against it revert was always using p1 as parent. This created some minor misbehavior when reverting against p2. See test change for an example of that. This is also a useful cleanup for coming refactoring to revert.
Wed, 14 May 2014 10:37:25 -0700 revert: explicitly get status against the parent
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 14 May 2014 10:37:25 -0700] rev 21578
revert: explicitly get status against the parent This makes absolutely no functional changes. The default value for node1 is already the same as the current value of parent. But to be able to properly use the second parent in merge context, we have to start to be a bit more explicit about what we compute the status against.
Tue, 13 May 2014 17:28:19 -0700 revert: group related data in tuple in the dispatch table
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 13 May 2014 17:28:19 -0700] rev 21577
revert: group related data in tuple in the dispatch table The dispatch table used to be: - action if in target manifest - action if not in target manifest - make backup if in target manifest - make backup if not in target manifest We turn this into two (action, make backup) tuples. This helps both readability of the dispatch table and handling of each case. This also prepares a refactoring where the different actions we performs, whether "file is in target manifest" or not, are determined before reaching this loop.
Tue, 13 May 2014 16:42:31 -0700 revert: group action into a single dictionary
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 13 May 2014 16:42:31 -0700] rev 21576
revert: group action into a single dictionary We had 4 different variables to hold the list of the 4 possibles actions. I'm grouping them in a single dictionary for a few reasons. First, it makes it clearer they are all related and meant to be the final actions performed by revert. Second this simplifies the parameter of the _performrevert function. Finally the two elements in each entry (list and message) have a different consumers in different functions, this change will make it easier to split them in a later commit.
Tue, 13 May 2014 16:29:42 -0700 revert: add some inline comments
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 13 May 2014 16:29:42 -0700] rev 21575
revert: add some inline comments I spend some time understanding how this part of the revert code is working. I'm adding some comments to help the code readability. I expect most of them to disappear in a coming refactoring. But the refactoring should be easier to follow with the comment.
Tue, 13 May 2014 16:29:20 -0700 revert: cosmetic align of the dispatch table
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 13 May 2014 16:29:20 -0700] rev 21574
revert: cosmetic align of the dispatch table This changeset make a minimal cosmetic change to help readability of the value in this table.
Tue, 13 May 2014 17:28:19 -0700 revert: add a test case to reverting "add" during merges
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 13 May 2014 17:28:19 -0700] rev 21573
revert: add a test case to reverting "add" during merges This kind of revert is specifically trickier since the file is reported as "modified" by status. This case was only tested by some largefiles test. We introduce proper testing of all aspects of this case in the revert tests themselves.
Sat, 17 May 2014 15:14:18 +0900 alias: change return code of bad definition to 255 stable
Yuya Nishihara <yuya@tcha.org> [Sat, 17 May 2014 15:14:18 +0900] rev 21572
alias: change return code of bad definition to 255 We use 255 for general command error. It can't raise util.Abort because help module executes badalias command to get error message.
Tue, 27 May 2014 15:16:52 -0700 bookmarks: properly align multi-byte characters stable
Matt Mackall <mpm@selenic.com> [Tue, 27 May 2014 15:16:52 -0700] rev 21571
bookmarks: properly align multi-byte characters
Tue, 27 May 2014 15:13:13 -0700 tests: fix cut and paste error on encoding alignment test stable
Matt Mackall <mpm@selenic.com> [Tue, 27 May 2014 15:13:13 -0700] rev 21570
tests: fix cut and paste error on encoding alignment test
Sat, 17 May 2014 13:06:16 +0900 alias: handle shlex error in command aliases stable
Yuya Nishihara <yuya@tcha.org> [Sat, 17 May 2014 13:06:16 +0900] rev 21569
alias: handle shlex error in command aliases No command should fail with ValueError just because there is unparseable alias definition. It returns 1 like other badalias handlers, but should be changed to 255 in a later version because we use 255 for general command error.
Thu, 08 May 2014 19:03:00 +0900 subrepo: normalize path in the specific way for problematic encodings stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 08 May 2014 19:03:00 +0900] rev 21568
subrepo: normalize path in the specific way for problematic encodings Before this patch, "reporelpath()" uses "rstrip(os.sep)" to trim "os.sep" at the end of "parent.root" path. But it doesn't work correctly with some problematic encodings on Windows, because some multi-byte characters in such encodings contain '\\' (0x5c) as the tail byte of them. In such cases, "reporelpath()" leaves unexpected '\\' at the beginning of the path returned to callers. "lcalrepository.root" seems not to have tail "os.sep", because it is always normalized by "os.path.realpath()" in "vfs.__init__()", but in fact it has tail "os.sep", if it is a root (of the drive): path normalization trims tail "os.sep" off "/foo/bar/", but doesn't trim one off "/". So, just avoiding "rstrip(os.sep)" in "reporelpath()" causes regression around issue3033 fixed by fccd350acf79. This patch introduces "pathutil.normasprefix" to normalize specified path in the specific way for problematic encodings without regression around issue3033.
Thu, 08 May 2014 19:03:00 +0900 subrepo: avoid sanitizing ".hg/hgrc" in meta data area for non-hg subrepos stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 08 May 2014 19:03:00 +0900] rev 21567
subrepo: avoid sanitizing ".hg/hgrc" in meta data area for non-hg subrepos Before this patch, sanitizing ".hg/hgrc" scans directories and files also in meta data area for non-hg subrepos: under ".svn" for Subversion subrepo, for example. This may cause not only performance impact (especially in large scale subrepos) but also unexpected removing meta data files. This patch avoids sanitizing ".hg/hgrc" in meta data area for non-hg subrepos. This patch stops checking "ignore" target at the first (case-insensitive) appearance of it, because continuation of scanning is meaningless in almost all cases.
Thu, 08 May 2014 19:03:00 +0900 subrepo: make "_sanitize()" take absolute path to the root of subrepo stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 08 May 2014 19:03:00 +0900] rev 21566
subrepo: make "_sanitize()" take absolute path to the root of subrepo Before this patch, "hg update" doesn't sanitize ".hg/hgrc" in non-hg subrepos correctly, if "hg update" is executed not at the root of the parent repository. "_sanitize()" takes relative path to subrepo from the root of the parent repository, and passes it to "os.walk()". In this case, "os.walk()" expects CWD to be equal to the root of the parent repository. So, "os.walk()" can't find specified path (or may scan unexpected path), if CWD isn't equal to the root of the parent repository. Non-hg subrepo under nested hg-subrepos may cause same problem, too: CWD may be equal to the root of the outer most repository, or so. This patch makes "_sanitize()" take absolute path to the root of subrepo to sanitize correctly in such cases. This patch doesn't normalize the path to hostile files as the one relative to CWD (or the root of the outer most repository), to fix the problem in the simple way suitable for "stable". Normalizing should be done in the future: maybe as a part of the migration to vfs.
Thu, 08 May 2014 19:03:00 +0900 subrepo: invoke "_sanitize()" also after "git merge --ff" stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 08 May 2014 19:03:00 +0900] rev 21565
subrepo: invoke "_sanitize()" also after "git merge --ff" Before this patch, sanitizing ".hg/hgrc" in git subrepo doesn't work, when the working directory is updated by "git merge --ff". "_sanitize()" is not invoked after checking target revision out into the working directory in this case, even though it is invoked indirectly via "checkout" (or "rawcheckout") in other cases. This patch invokes "_sanitize()" explicitly also after "git merge --ff" execution.
Thu, 08 May 2014 19:03:00 +0900 subrepo: make "_sanitize()" work stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 08 May 2014 19:03:00 +0900] rev 21564
subrepo: make "_sanitize()" work "_sanitize()" was introduced by 224e96078708 on "stable" branch, but it has done nothing for sanitizing since 224e96078708. "_sanitize()" assumes "Visitor" design pattern: "os.walk()" should invoke specified function ("v" in this case) for each directory elements under specified path but "os.walk()" assumes "Iterator" design pattern: callers of it should drive loop to scan each directory elements under specified path by themselves with the returned generator object Because of this mismatching, "_sanitize()" just discards the generator object returned by "os.walk()" and does nothing for sanitizing. This patch makes "_sanitize()" work. This patch also changes the format of warning message to show each unlinked files, for multiple appearances of "potentially hostile .hg/hgrc".
Tue, 27 May 2014 23:02:05 +0530 vfs: add lexists() in current api
Chinmay Joshi <c@chinmayjoshi.com> [Tue, 27 May 2014 23:02:05 +0530] rev 21563
vfs: add lexists() in current api lexists is added in current API of vfs.
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 +30000 tip