Martin von Zweigbergk <martinvonz@google.com> [Fri, 07 Jul 2017 14:39:59 -0700] rev 33447
match: write forceincludematcher using unionmatcher
The forceincludematcher is simply a unionmatcher of a includematcher
(matching paths recursively) with the given matcher. Since the
forceincludematcher is only used by sparse, move it there.
I don't have a good sparse repo setup to test performance impact on.
Differential Revision: https://phab.mercurial-scm.org/D57
Martin von Zweigbergk <martinvonz@google.com> [Wed, 12 Jul 2017 13:57:03 -0700] rev 33446
histedit: extract InterventionRequired transaction handling to utils
rebase will have similar logic, so let's extract it. Besides, it makes
the histedit code more readable.
We may want to parametrize acceptintervention() by the exception(s)
that should result in transaction close.
Differential Revision: https://phab.mercurial-scm.org/D66
Martin von Zweigbergk <martinvonz@google.com> [Wed, 12 Jul 2017 13:17:49 -0700] rev 33445
histedit: create transaction outside of try
Just a little refactoring to simplify the next patch.
Differential Revision: https://phab.mercurial-scm.org/D65
Martin von Zweigbergk <martinvonz@google.com> [Wed, 12 Jul 2017 11:18:02 -0700] rev 33444
histedit: remove transaction from state object
The transaction is only used within a single function, so no need to
store it on the state object.
Differential Revision: https://phab.mercurial-scm.org/D64
Jun Wu <quark@fb.com> [Tue, 11 Jul 2017 08:17:29 -0700] rev 33443
phabricator: verify local tags before trusting them
Previously we trust local tags blindly and that could cause wrong
Differential Revision to be updated, when people switch between Phabricator
instances.
This patch adds verification logic to detect such issue and remove
problematic tags. For example, a tag "D19" was on node "X", the code will
fetch all diffs attached to D19, and check if nodes server-side overlaps
with nodes in precursors. If they do not overlap, create a new Differential
Revision.
Test Plan:
Use a test Phabricator instance, send patches using `hg phabsend`, then
change the local tag manually to a wrong Differential Revision number.
Amend the patch and send again. Make sure the tag gets ignored and deleted.
Differential Revision: https://phab.mercurial-scm.org/D36
Jun Wu <quark@fb.com> [Mon, 10 Jul 2017 13:50:50 -0700] rev 33442
phabricator: finding old nodes in batch
This allows us to do extra sanity checks using batch APIs to prevent
updating a wrong revision, which could happen when people switch Phabricator
instances and having stale tags living in the repo.
Differential Revision: https://phab.mercurial-scm.org/D34
Jun Wu <quark@fb.com> [Mon, 10 Jul 2017 22:37:33 -0700] rev 33441
phabricator: respect metadata sent by arc
Previously we only respect hg:meta sent by phabsend. This patch makes it
respect local:commits sent by arc as well. This avoids issues where phabread
could lose the author information.
Test Plan:
Commit using a customized user, send the patch using arc to a test
Phabricator instance, and then read the patch using phabread. Make sure it
preserves the user information.
Differential Revision: https://phab.mercurial-scm.org/D33