Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jun 2018 22:19:56 +0900] rev 38686
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.
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jun 2018 18:11:49 +0900] rev 38685
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.
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jun 2018 20:02:53 +0900] rev 38684
fileset: add helpers to make predicatematcher and nevermatcher
These functions will be used to compose a tree of matchers from a fileset
expression.
Yuya Nishihara <yuya@tcha.org> [Sat, 14 Jul 2018 13:21:49 +0900] rev 38683
phases: micro-optimize newheads() to not create context objects
Yuya Nishihara <yuya@tcha.org> [Sat, 14 Jul 2018 13:19:18 +0900] rev 38682
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}
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 15 Jul 2018 15:48:18 +0530] rev 38681
rebase: remove unused variable "release" and an extra blank line
Differential Revision: https://phab.mercurial-scm.org/D3947
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 14 Jul 2018 23:00:22 +0530] rev 38680
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
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 14 Jul 2018 08:59:42 +0530] rev 38679
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
Joerg Sonnenberger <joerg@bec.de> [Thu, 12 Jul 2018 15:29:03 +0200] rev 38678
pullbundle: fix handling of gzip bundlespecs
Differential Revision: https://phab.mercurial-scm.org/D3933
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 11 Jul 2018 16:44:33 -0700] rev 38677
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
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 13 Jul 2018 14:20:12 -0700] rev 38676
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
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 12 Jul 2018 22:35:54 +0530] rev 38675
rebase: correct misleading message in --confirm option
Differential Revision: https://phab.mercurial-scm.org/D3939
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 12 Jul 2018 22:23:51 +0530] rev 38674
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
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 15:12:01 -0700] rev 38673
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