Jun Wu <quark@fb.com> [Tue, 04 Jul 2017 16:36:48 -0700] rev 33266
phabricator: abort if phabsend gets empty revs
Previously we didn't abort. Now we abort if revs is empty. This is
consistent with "hg export" behavior. Maybe "return 1" is also a reasonable
behavior, but that's inconsistent with the existing "hg export".
Jun Wu <quark@fb.com> [Tue, 04 Jul 2017 16:36:48 -0700] rev 33265
phabricator: do not upload new diff if nothing changes
Previously, `phabsend` uploads new diffs as long as the commit hash changes.
That's suboptimal because sometimes the diff is exactly the same as before,
the commit hash change is caused by a parent hash change, or commit message
change which do not affect diff content.
This patch adds a check examining actual diff contents to skip uploading new
diffs in that case.
Jun Wu <quark@fb.com> [Tue, 04 Jul 2017 16:36:48 -0700] rev 33264
phabricator: add node and p1 to hg:meta property
The "hg:meta" property is for extra metadata to reconstruct the patch.
Previously it does not have node or parent information since I think by
reading the patch again, the commit message will be mangled (like, added the
"Differential Revision" line) and we cannot preserve the commit hash.
However, the "parent" information could be useful. It could be helpful to
locate the "base revision" so in case of a conflict applying the patch
directly, we might be able to use 3-way merge to resolve it correctly.
Note: "local:commits" is an existing "property" used by Phabricator that has
the node and parent information. However, it lacks of timezone information
and requires "author" and "authorEmail" to be separated. So we are using a
different "property" - "hg:meta" to be distinguished from "local:commits".
Jun Wu <quark@fb.com> [Tue, 04 Jul 2017 16:16:37 -0700] rev 33263
phabricator: check associated Differential Revision from commit message
Previously, only tags can "associate" a changeset to a Differential
Revision. But the usual pattern (arc patch or hg phabread) is to put the
Differential Revision URL in commit message.
This patch makes the code read commit message to find associated
Differential Revision if associated tags are not found.
This makes some workflows possible. For example, if the author loses their
repo, or switch to another computer, they can continue download their own
patches from Phabricator and update them without needing to manually create
tags.
Augie Fackler <augie@google.com> [Wed, 05 Jul 2017 11:10:11 -0500] rev 33262
tests: replace yet more calls to `python` with $PYTHON
These are some simple cases. More to come in a future change.
Reviewers: krbullock
Reviewed By: krbullock
Differential Revision: https://phab.mercurial-scm.org/D4
Augie Fackler <augie@google.com> [Wed, 05 Jul 2017 11:09:55 -0500] rev 33261
tests: capitalize Python when it's not used as a command name
This avoids some false positives in an upcoming check-code rule.
Reviewers: krbullock
Reviewed By: krbullock
Differential Revision: https://phab.mercurial-scm.org/D3
Augie Fackler <augie@google.com> [Wed, 05 Jul 2017 11:55:26 -0400] rev 33260
merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 04:26:42 +0200] rev 33259
vfs: drop the 'mustaudit' API
There are no remaining users of 'mustaudit' so we can safely drop the API.
External user are unlikely from a quick research so no deprecation is added.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 04:26:34 +0200] rev 33258
streamclone: stop using 'vfs.mustaudit = False'
Now that each call disable the auditing on its own, we can safely drop this the
mustaudit usage. No other code is modified.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 02:28:04 +0200] rev 33257
vfs: simplify path audit disabling in stream clone
The whole 'mustaudit' API is quite complex compared to its actual usage by its
unique user in stream clone.
Instead we add a "auditpath" parameter to 'vfs.__call_'. The stream clone code
then explicitly open files with path auditing disabled.
The 'mustaudit' API will be cleaned up in the next changeset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 02:19:05 +0200] rev 33256
auditor: add simple comment about repo.auditor and al
Every once in a while, I get confused by what these are. Let us add a comment.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 01:41:37 +0200] rev 33255
tag: make sure the repository is locked when tagging
Otherwise, writing localtag can happen without the lock.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 01:38:08 +0200] rev 33254
test: glob a line number in test-devel-warnings.t
This make is simpler to edit the extensions file without side effect.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 01:37:03 +0200] rev 33253
test: add a small comment to explain a section of test-devel-warning
This makes each test boundaries clearer.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 03:54:19 +0200] rev 33252
obsolete: reports the number of local changeset obsoleted when unbundling
This is a first basic visible usage of the changes tracking in the transaction.
We adds a new function computing the pre-existing changesets obsoleted by a
transaction and a transaction call back displaying this information.
Example output:
added 1 changesets with 1 changes to 1 files (+1 heads)
3 new obsolescence markers
obsoleted 1 changesets
The goal is to evolve the transaction summary into something bigger, gathering
existing output there and adding new useful one. This patch is a good first step
on this road. The new output is basic but give a user to the content of
tr.changes['obsmarkers'] and give an idea of the new options we haves. I expect
to revisit the message soon.
The caller recording the transaction summary should also be moved into a more
generic location but further refactoring is needed before it can happen.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 27 Jun 2017 02:45:09 +0200] rev 33251
transaction: track new obsmarkers in the 'changes' mapping
The obsstore collaborate with transaction to make sure we track all the
obsmarkers added during a transaction. This will be useful for various usages:
hooks, caches, better output, etc.
This is the seconds kind of data added to tr.changes (first one was added revisions)
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:44:04 +0200] rev 33250
configitems: register the 'progress.estimate' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:44:02 +0200] rev 33249
configitems: register the 'progress.clear-complete' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:44:01 +0200] rev 33248
configitems: register the 'progress.assume-tty' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:42:30 +0200] rev 33247
configitems: register the 'format.usestore' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:42:29 +0200] rev 33246
configitems: register the 'format.usegeneraldelta' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:42:28 +0200] rev 33245
configitems: register the 'format.usefncache' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:42:27 +0200] rev 33244
configitems: register the 'format.obsstore-version' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:42:15 +0200] rev 33243
configitems: register the 'factotum.service' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:42:13 +0200] rev 33242
configitems: register the 'factotum.mountpoint' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:42:12 +0200] rev 33241
configitems: register the 'factotum.executable' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:42:26 +0200] rev 33240
configitems: register the 'format.maxchainlen' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:42:24 +0200] rev 33239
configitems: register the 'format.manifestcachesize' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:42:23 +0200] rev 33238
configitems: register the 'format.generaldelta' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:42:22 +0200] rev 33237
configitems: register the 'format.dotencode' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:42:21 +0200] rev 33236
configitems: register the 'format.chunkcachesize' config
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Jun 2017 03:42:20 +0200] rev 33235
configitems: register the 'format.aggressivemergedeltas' config