Michael Bolin <mbolin@fb.com> [Wed, 23 Aug 2017 18:24:57 +0000] rev 33981
dirstate: perform transactions with _copymap using single call, where possible
This replaces patterns such as this:
```
if f in self._copymap:
del self._copymap[f]
```
with this:
```
self._copymap.pop(f, None)
```
Although eliminating the extra lookup/call may be a negligible performance win
in the standard dirstate, alternative implementations, such as
[sqldirstate](https://bitbucket.org/facebook/hg-experimental/src/default/sqldirstate/)
may see a bigger win where each of these calls results in an RPC,
so the savings is greater.
Test Plan:
`make tests`
Differential Revision: https://phab.mercurial-scm.org/D493
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 20:25:16 -0700] rev 33980
pull: do not prompt "hg update" if update.requiredest is set
Previously, after pull, we show:
(run 'hg update' to get a working copy)
unconditionally. People might run `hg update` and get an exception if
`update.requiredest` is set, and get a bit frustrated. This patch changes
the code to not prompt `hg update` in that case.
Differential Revision: https://phab.mercurial-scm.org/D516
Martin von Zweigbergk <martinvonz@google.com> [Fri, 25 Aug 2017 22:05:10 -0700] rev 33979
changelog: abort on attempt to write wdir revision
Similar to the previous patch which prevented writing the null
revision to any revlog, but this is for the wdir revision.
Thanks to Jun for pointing this out.
Differential Revision: https://phab.mercurial-scm.org/D524
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 17:44:08 -0700] rev 33978
phabsend: show associated Differential Revisions with --confirm
Often people running `phabsend --confirm` just want to check whether a
commit will trigger a creation of new Differential Revision, or update an
existing one. This patch implements that. The `--confirm` message was
changed to use node instead of revision number to be consistent with what
`phabsend` outputs.
An example output looks like:
D487 -
a80f447973a0 test-extension: enable demandimport explicitly
D494 -
cf440ea6e47e test-casecollision-merge: fix the test
NEW -
0a6b97147128 phabsend: polish the docstring a bit
Send the above changes to https://phab.mercurial-scm.org/ (yn)?
Differential Revision: https://phab.mercurial-scm.org/D514
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 17:31:33 -0700] rev 33977
phabsend: print the actual URL with --confirm
Sometimes people have multiple Phabricator endpoints set in multiple repos.
It seems better for `--confirm` to prompt about the Phabricator endpoint
patches being sent to.
Differential Revision: https://phab.mercurial-scm.org/D513
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 17:25:18 -0700] rev 33976
phabsend: detect patch change with larger context
Previously phabsend has an optimization that will skip uploading a diff if
the patch (with context line number = 1) remains unchanged. That could be
confusing:
Aug 24 15:52:28 <martinvonz> phillco: something is wrong with phabricator'your patches/
Aug 24 15:52:45 <martinvonz> ... with phabricator's view of your patches again
Aug 24 15:53:38 <martinvonz> if i phabread D388 and then D399, i get a version of filemerge.py with "a, b, c" somewhere on line 344, which is not what phabricator shows for D399
Aug 24 15:53:51 <martinvonz> junw: maybe that's more for you ^
Fix that by checking context with 32767 lines, which is the same as what
will be actually sent.
Differential Revision: https://phab.mercurial-scm.org/D512
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 16:52:28 -0700] rev 33975
phabsend: make --amend the default
The local tag feature was intended to make `phabsend` closer to `email`
workflow. But its experience is not great in multiple ways:
- after rebase, obsoleted changesets are still visible because of tags
- without obsstore, the association information will get lost
- even with obsstore, things could go wrong with graft, export+import
- no easy way to tell which Differential Revision a commit is associated
Therefore make `--amend` the default. People wanting the old behavior can
use `--no-amend`.
Differential Revision: https://phab.mercurial-scm.org/D511
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 17:26:10 -0700] rev 33974
phabsend: polish the docstring a bit
Differential Revision: https://phab.mercurial-scm.org/D510
Peter Vitt <peter.vitt2@uni-siegen.de> [Mon, 28 Aug 2017 13:43:31 +0200] rev 33973
record: make the m key open an editor for the commit message (
issue5667)
With the former crecord extension, the user could edit the commit
message while he was de-/selecting hunks. By pressing 'm', an editor
showed up to edit the commit message.
With record being part of mercurial, this feature is not available
anymore. However, the help text still mentions it.
As the infrastructure needed is still present, this feature is quite
easily ported from the crecord extension to mercurial.
It seems there is no test coverage for record ui, so I tested this patch
manually on my local machine.
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:59:02 -0400] rev 33972
tests: update test-patch to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:57 -0400] rev 33971
tests: update test-pager to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:52 -0400] rev 33970
tests: update test-obsolete to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:47 -0400] rev 33969
tests: update test-notify to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:43 -0400] rev 33968
tests: update test-merge1 to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:37 -0400] rev 33967
tests: update test-merge-symlinks to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:28 -0400] rev 33966
tests: update test-logtoprocess to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:22 -0400] rev 33965
tests: update test-log to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:13 -0400] rev 33964
tests: update test-log-exthook to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:07 -0400] rev 33963
tests: update test-largefiles-wireproto to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:57:37 -0400] rev 33962
tests: update test-largefiles-small-disk to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:47 -0400] rev 33961
tests: update test-keyword to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:37 -0400] rev 33960
tests: update test-impexp-branch to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:30 -0400] rev 33959
tests: update test-help to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:24 -0400] rev 33958
tests: update test-hardlinks to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:18 -0400] rev 33957
tests: update test-glog to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:12 -0400] rev 33956
tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:06 -0400] rev 33955
tests: update test-eol to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:59 -0400] rev 33954
tests: update test-dirstate to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:35 -0400] rev 33953
tests: update test-debugcommands to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:27 -0400] rev 33952
tests: update test-convert-clonebranches to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:01 -0400] rev 33951
tests: update test-commit to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:49:54 -0400] rev 33950
tests: update test-command-template to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:49:20 -0400] rev 33949
tests: update test-chg to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:05:51 -0400] rev 33948
tests: update test-bundle2-format to pass import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:04:36 -0400] rev 33947
tests: update test-bundle2-pushback to pass the import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:04:14 -0400] rev 33946
tests: update test-bookmarks to pass the import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:58:39 -0400] rev 33945
tests: update test-bisect to pass our module import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:58:21 -0400] rev 33944
tests: update test-archive to pass our module import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:58:10 -0400] rev 33943
tests: update test-annotate to pass our module import checker
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 03:56:53 +0200] rev 33942
obsolete: fix old typo
Clean an old typo in successorssets.
Differential Revision: https://phab.mercurial-scm.org/D531
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 03:54:24 +0200] rev 33941
obsolete: move merge logic on the smaller object
Refactor some logic in _succs in order to clean successorssets code.
Differential Revision: https://phab.mercurial-scm.org/D530
Rishabh Madan <rishabhmadan96@gmail.com> [Mon, 28 Aug 2017 04:11:58 +0530] rev 33940
releasenotes: view admonition titles using -l flag
Since this extension is fairly new for almost all the contributors, remembering
the admonition (with titles) is difficult. The list (-l) flag provides
a list of all the active admonitions along with titles.
For usage, hg releasenotes -l returns the list.
Differential Revision: https://phab.mercurial-scm.org/D454
Martin von Zweigbergk <martinvonz@google.com> [Sat, 26 Aug 2017 16:00:07 -0700] rev 33939
tests: move baduisetup test inside "#if demandimport"
The test case depends on the failure happening not at import time, but
at uisetup() time, so it doesn't make sense when demandimport is
disabled.
There was already a section for testing demandimport stuff, so I moved
it inside that existing section. As part of the move, I enabled the
extension using '--config' so subsequent tests don't get the bad
extension enabled.
Differential Revision: https://phab.mercurial-scm.org/D526
Martin von Zweigbergk <martinvonz@google.com> [Fri, 25 Aug 2017 15:50:07 -0700] rev 33938
revlog: abort on attempt to write null revision
My repo got corrupted yesterday by something that ended up writing the
null revision to the revlog (nullid hash, not nullrev index, of
course). We use many extensions internally (narrowhg, remotefilelog,
evolve, internal extensions) and treemanifests are on. The null
revision was written to the changelog, the root manifest log, and one
subdirectory manifest log. I have no idea exactly why the null
revision was written, but it seems cheap enough to check that we
should fail instead of corrupting the repo.
Differential Revision: https://phab.mercurial-scm.org/D522
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Aug 2017 23:39:05 -0700] rev 33937
context: remove unnecessary default values for matchers (API)
ctx._dirstatestatus() is called only from workingctx._buildstatus()
and that function, in turn, is called only from
basectx.status(). basectx.status() will always pass a matcher to
_buildstatus(), so there's no need to handle a None matcher there.
Differential Revision: https://phab.mercurial-scm.org/D492
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Aug 2017 23:27:55 -0700] rev 33936
context: always pass a matcher into _matchstatus() (API)
This just makes it a little easier to follow and removes the need to
call the superclass's method in workingctx.
Differential Revision: https://phab.mercurial-scm.org/D491
Jun Wu <quark@fb.com> [Wed, 23 Aug 2017 11:30:25 -0700] rev 33935
test-casecollision-merge: fix the test
D30 (
055fee3547df) makes the error message unpredictable, therefore the fix.
Differential Revision: https://phab.mercurial-scm.org/D494
Jun Wu <quark@fb.com> [Sun, 20 Aug 2017 09:46:27 -0700] rev 33934
run-tests: make per-line condition support testcase names
7340465bd added multiple test cases support. The latter has a problem -
output lines cannot be made conditional with `#if`:
```
# COUNTEREXAMPLE: DOES NOT WORK
#testcases A B
$ command-foo
common ouput
#if A
A's ouput
#else
B's ouput
#endif
common ouput
```
That's not trivial to fix (even if it works in test, `run-tests.py -i` may
be suboptimal because diff algorithm does not know how to skip the `#if`
lines, even if it does, it may have trouble figuring out whether a changed
line belongs to inside a `#if` block or outside).
Matching output lines conditionally is useful.
4eec2f04a added per-line
condition support for hghave. This patch extends that to also support test
case names.
Differential Revision: https://phab.mercurial-scm.org/D466