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
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 15:01:47 -0700] rev 38672
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
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 15:03:39 -0700] rev 38671
rebase: reduce scope of a variable
Differential Revision: https://phab.mercurial-scm.org/D3940
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Jul 2018 08:22:28 -0700] rev 38670
context: rename descendant() to isancestorof()
This makes the direction much clearer, IMO.
Differential Revision: https://phab.mercurial-scm.org/D3936
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Jul 2018 09:25:02 -0700] rev 38669
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
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Jul 2018 08:14:21 -0700] rev 38668
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
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 30 Jun 2018 12:42:49 +0530] rev 38667
rebase: add --confirm option
This feature adds a functionality in rebase to confirm before applying
changes.
When there is no conflict and user confirm to apply actions, we just
finish the unfinished rebase. But when there is a conflict and user
confirm to apply actions then we can't just finish rebasing using
rbsrt._finishrebase() because in-memory merge doesn't support conflicts, so
we have to abort and run on-disk merge in this case.
And if user doesn't confirm to apply actions then simply abort the rebase.
Differential Revision: https://phab.mercurial-scm.org/D3870
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 16:29:23 -0700] rev 38666
revlog: introduce a isancestorrev() and use it in rebase
Differential Revision: https://phab.mercurial-scm.org/D3931
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 16:37:30 -0700] rev 38665
revlog: make isdescendantrev(a, b) check if a < b
This check was taken from rebase.py. It seems to make sense to move it
here, but I haven't done any measurements.
Differential Revision: https://phab.mercurial-scm.org/D3930
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 16:21:41 -0700] rev 38664
revlog: replace descendant(b, a) by isdescendantrev(a, b) (API)
The "is" is to match "isancestor" and to make it clear that it doesn't
return a descendant. The "rev" is to make it clear that it's not about
nodeids (unlike e.g. isancestor()). The argument order change is just
seems more natural (and makes isancestor() less confusing).
Differential Revision: https://phab.mercurial-scm.org/D3929
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 16:27:40 -0700] rev 38663
revlog: move comment about commonancestorsheads where it's used
Differential Revision: https://phab.mercurial-scm.org/D3928
Kyle Lippincott <spectral@google.com> [Wed, 11 Jul 2018 13:02:06 -0700] rev 38662
removeemptydirs: add test for `hg split` inside a disappearing directory
Differential Revision: https://phab.mercurial-scm.org/D3927
Martijn Pieters <mj@zopatista.com> [Wed, 11 Jul 2018 14:28:13 +0100] rev 38661
fncache: avoid loading the filename cache when not actually modifying it
With time, fncache can become very large. The mozilla-central repo for example,
has a 31M and growing fncache file. Loading this file takes time (280ms for the
mozilla-central repository).
In many scenarios, we don't need to load fncache at all. For example, when
committing changes to existing files, or pushing such commits to another clone.
This patch detects when a name is added via store.vfs(), and only loads the
cache if a) the data metadata file doesn't already exist, or b) when opening
for appending, the data or metadata file exists but has size (a transaction
rollback leaves behind such files).
Benchmarks (run on Macos 10.13 on a 2017-model Macbook Pro with Core i7 2.9GHz
and flash drive), each test without and with patch run 5 times:
* committing to an existing file, against the mozilla-central repository.
Baseline real time average 2.3736, with patch 1.9884.
* unbundling a large changeset consisting *only* of existing-file modifications
(159 revisions, 1050 modifications, mozilla-central
4a250a0e4f29:
beea9ac7d823), into a clone limited to the ancestor revision of
that revset). Baseline real time average 1.5048, with patch 1.3108.
Sune Foldager <cryo@cyanite.org> [Wed, 11 Jul 2018 16:11:33 +0200] rev 38660
tests: add diff color trailing whitespace test
Augie Fackler <augie@google.com> [Wed, 11 Jul 2018 13:40:50 -0400] rev 38659
scmutil: fix shortesthexnodeidprefix on Python 3 for 0-prefixed nodes
This fixes test-bookmarks.t on Python 3 (which had regressed.)
Differential Revision: https://phab.mercurial-scm.org/D3926