1500cbe22d53ce17093fedaf82a6bcb7a995cc5e: fileset: parse argument of size() by predicate function
Yuya Nishihara <yuya@tcha.org> - Sun, 10 Jun 2018 20:58:10 +0900 - rev 46982
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
fileset: parse argument of size() by predicate function This change is necessary to pass in a size expression to predicatematcher. See the next patch.
131aae58a3164e6cdd2c7fbf73d3824c2b0d7623: fileset: add "tracked()" to explicitly select files in the revision
Yuya Nishihara <yuya@tcha.org> - Sun, 10 Jun 2018 22:19:56 +0900 - rev 46981
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
fileset: add "tracked()" to explicitly select files in the revision I'm going to rewrite filesets to be match predicates, which means basic patterns such as '*' will no longer be "closed" to the subset constructed from the ctx. Good thing is that 'hg status "set:not binary()"' can include unknown files out of the box, and fileset computation will likely to be faster as we won't have to walk dirstate twice, for example. Bad thing is that we can't select files at a certain revision by 'set:revs(REV, **)' since '**' is "open" to any paths. So, this patch introduces "tracked()" as a replacement for the '**' in the example above.
80466fd85ac916363e671bfddebaa0f455bf5f43: fileset: rewrite andset() to not use mctx.narrow()
Yuya Nishihara <yuya@tcha.org> - Sat, 09 Jun 2018 18:11:49 +0900 - rev 46980
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
fileset: rewrite andset() to not use mctx.narrow() New code is less efficient than the original, but it helps porting andset() to matcher composition. This will be cleaned up later. This effectively disables the fullmatchctx magic since mctx will never be demoted to the matchctx. The fullmatchctx class will be removed later.
07b551a4df4462c6abdd6f0f91f9e56141a9263d: fileset: add helpers to make predicatematcher and nevermatcher
Yuya Nishihara <yuya@tcha.org> - Sun, 10 Jun 2018 20:02:53 +0900 - rev 46979
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
fileset: add helpers to make predicatematcher and nevermatcher These functions will be used to compose a tree of matchers from a fileset expression.
ddd2165438cd30f420ffedfbb687819f3580904d: phases: micro-optimize newheads() to not create context objects
Yuya Nishihara <yuya@tcha.org> - Sat, 14 Jul 2018 13:21:49 +0900 - rev 46978
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
phases: micro-optimize newheads() to not create context objects
88efb7d6bcb6214079d952a90b0eb14dbfa11c71: phases: remove excessive optimization from newheads() (issue5939)
Yuya Nishihara <yuya@tcha.org> - Sat, 14 Jul 2018 13:19:18 +0900 - rev 46977
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
phases: remove excessive optimization from newheads() (issue5939) This function is intended to compute 'heads(::heads - roots::)', but it failed because 'heads + parents(roots)' missed sibling branches of the roots. That's why the public heads slipped down from D to B in the example added by 2a227782e754 "tests: add test demonstrating phase loss when cloning": > E draft > |\Z draft > | Y draft > D | public > | X draft > C/ public > B public > A public where heads = {E, Z}, roots = {X}
8eeed92475d5bc34c59114e760da1787e459bc5e: rebase: remove unused variable "release" and an extra blank line
Sushil khanchi <sushilkhanchi97@gmail.com> - Sun, 15 Jul 2018 15:48:18 +0530 - rev 46976
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
rebase: remove unused variable "release" and an extra blank line Differential Revision: https://phab.mercurial-scm.org/D3947
70448ec995c25f4d5e5a3218d8806bb2b006834c: rebase: remove unnecessary confirm block
Sushil khanchi <sushilkhanchi97@gmail.com> - Sat, 14 Jul 2018 23:00:22 +0530 - rev 46975
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
rebase: remove unnecessary confirm block Removed unnecessary 'if confirm:' block as that thing is now handled at 'finally'. Differential Revision: https://phab.mercurial-scm.org/D3945
b3d0c97a082072c570acaade18359b6b264fb535: rebase: in --confirm option just abort if hit a conflict
Sushil khanchi <sushilkhanchi97@gmail.com> - Sat, 14 Jul 2018 08:59:42 +0530 - rev 46974
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
rebase: in --confirm option just abort if hit a conflict Before this patch, it was prompting the user in both cases 1) when there is no conflict 2) when there is at least one conflict. But for simplicity we can just abort if we hit a conflict and no need to prompt in that case. Differential Revision: https://phab.mercurial-scm.org/D3944
7e4a856a4f0583ce1e348afc957b4449acd0bcbb: pullbundle: fix handling of gzip bundlespecs
Joerg Sonnenberger <joerg@bec.de> - Thu, 12 Jul 2018 15:29:03 +0200 - rev 46973
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
pullbundle: fix handling of gzip bundlespecs Differential Revision: https://phab.mercurial-scm.org/D3933
2a227782e75426a3e4408273a9a4eebe79dfdcea: tests: add test demonstrating phase loss when cloning (issue5939)
Gregory Szorc <gregory.szorc@gmail.com> - Wed, 11 Jul 2018 16:44:33 -0700 - rev 46972
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
tests: add test demonstrating phase loss when cloning (issue5939) The added tests demonstrate that phases exchange when using the listkeys based phases exchange fails to preserve public phase in a certain scenario when a merge is a phase root. Both non-bundle2 and bundle2 prior to the binary phase data part are buggy. Differential Revision: https://phab.mercurial-scm.org/D3932
3b072388ca787e57f7b38c8e81f7f45b391cdff7: scmutil: rewrite docstring for filecache
Gregory Szorc <gregory.szorc@gmail.com> - Fri, 13 Jul 2018 14:20:12 -0700 - rev 46971
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
scmutil: rewrite docstring for filecache The old docstring was incorrect in that it said that subsequent calls perform a stat() and refresh the object if things change. This is not how things work: __get__ populates obj.__dict__[self.sname] with the result of the decorated function and returns this value without validation on subsequent calls, if available. The correct usage of this type is kinda wonky. It would probably benefit from a refactor. But I don't have time to do that right now. But we can change the docstring so others aren't entrapped by its lies (like I was when using repofilecache in a Mozilla extension). Differential Revision: https://phab.mercurial-scm.org/D3943
35b3f686157a27db8a1a0a4ab9eab5f4583a5fdf: rebase: correct misleading message in --confirm option
Sushil khanchi <sushilkhanchi97@gmail.com> - Thu, 12 Jul 2018 22:35:54 +0530 - rev 46970
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
rebase: correct misleading message in --confirm option Differential Revision: https://phab.mercurial-scm.org/D3939
a50482254b0ae2106d5d3775f45dcf4621df310e: rebase: make sure we don't loose the return code in --confirm option
Sushil khanchi <sushilkhanchi97@gmail.com> - Thu, 12 Jul 2018 22:23:51 +0530 - rev 46969
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
rebase: make sure we don't loose the return code in --confirm option return _dorebase() to make sure it returns 'return code'. Differential Revision: https://phab.mercurial-scm.org/D3938
20a30bb8f276f9b037cecd44fce49d67b0c7d5eb: rebase: use revnums (not nodes) for set of extinct revisions
Martin von Zweigbergk <martinvonz@google.com> - Wed, 11 Jul 2018 15:12:01 -0700 - rev 46968
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
rebase: use revnums (not nodes) for set of extinct revisions There is no need to convert extinct revisions to nodeids. Differential Revision: https://phab.mercurial-scm.org/D3942
0f8599afb92f6ca2ce0e1fbc3e4ca76b4961d2b2: rebase: avoid converting from nodes to revnums twice
Martin von Zweigbergk <martinvonz@google.com> - Wed, 11 Jul 2018 15:01:47 -0700 - rev 46967
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
rebase: avoid converting from nodes to revnums twice In the case where the node has successors, but none of them is an ancestor of the destination, we would iterate over the successor nodes twice, check if they're in the repo and convert them to revnums. I doubt it's a measureable cost, but it gets simpler this way too. Differential Revision: https://phab.mercurial-scm.org/D3941
99ed6e2f6606d4793c1ca45d3fa00a1f8b0aa39a: rebase: reduce scope of a variable
Martin von Zweigbergk <martinvonz@google.com> - Wed, 11 Jul 2018 15:03:39 -0700 - rev 46966
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
rebase: reduce scope of a variable Differential Revision: https://phab.mercurial-scm.org/D3940
fbec9c0b32d37b9145bce8cbc088e0c8ec860e63: context: rename descendant() to isancestorof()
Martin von Zweigbergk <martinvonz@google.com> - Thu, 12 Jul 2018 08:22:28 -0700 - rev 46965
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
context: rename descendant() to isancestorof() This makes the direction much clearer, IMO. Differential Revision: https://phab.mercurial-scm.org/D3936
b5891bf8ab13f79532e025f7481b1a3438c4c57d: copies: delete now-unnecessary check for "a == b" before "a.descendant(b)"
Martin von Zweigbergk <martinvonz@google.com> - Thu, 12 Jul 2018 09:25:02 -0700 - rev 46964
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
copies: delete now-unnecessary check for "a == b" before "a.descendant(b)" Unnecessary since 879cbdde63df (revlog: do inclusive descendant testing (API), 2018-06-21). Differential Revision: https://phab.mercurial-scm.org/D3935
21846c94e60524cf541751e3b80aea797047f90f: revlog: delete isdescendantrev() in favor of isancestorrev()
Martin von Zweigbergk <martinvonz@google.com> - Thu, 12 Jul 2018 08:14:21 -0700 - rev 46963
Push 830 by gszorc@mozilla.com at Wed, 18 Jul 2018 00:43:55 +0000
revlog: delete isdescendantrev() in favor of isancestorrev() As agreed on by Boris, Yuya, and me on D3929. Differential Revision: https://phab.mercurial-scm.org/D3934
(0) -30000 -10000 -1000 -300 -50 -20 +20 +50 +100 +300 tip