Tue, 29 Aug 2017 17:49:13 -0700 rebase: remove an unnecessary adjustdest in clearrebased
Jun Wu <quark@fb.com> [Tue, 29 Aug 2017 17:49:13 -0700] rev 34025
rebase: remove an unnecessary adjustdest in clearrebased `rev` being "skipped" could currently be caused by moving `rev` does not create a new commit. In this case, `state[rev]` is already changed to `p1`, and is a sane destination for bookmark or working parent movement. Therefore an additional destination adjustment is unnecessary. Differential Revision: https://phab.mercurial-scm.org/D565
Mon, 21 Aug 2017 20:22:07 -0700 rebase: sort destmap topologically
Jun Wu <quark@fb.com> [Mon, 21 Aug 2017 20:22:07 -0700] rev 34024
rebase: sort destmap topologically Previously rebase source and destination could not overlap. But with the multi-destination support, source and destination could reasonably partially overlap. That requires another topological sort on `{sourcerev: destrev}` graph (destmap). This patch implements that. If a revision's destination is itself, the error message gets changed from "source is ancestor of destination" to "source and destination form a cycle". Not marking as BC since automation should depend on exit code, not error message. Differential Revision: https://phab.mercurial-scm.org/D470
Tue, 29 Aug 2017 17:27:37 -0700 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com> [Tue, 29 Aug 2017 17:27:37 -0700] rev 34023
rebase: initial support for multiple destinations This patch defines `SRC` (a single source revision) and `ALLSRC` (all source revisions) to be valid names in `--dest` revset if `--src` or `--rev` is used. So destination could be defined differently according to source revisions. The names are capitalized to make it clear they are "dynamically defined", distinguishable from normal revsets (Thanks Augie for the suggestion). This is useful, for example, `-r 'orphan()' -d 'calc-dest(SRC)'` to solve instability, which seems to be a highly wanted feature. The feature is not completed, namely if `-d` overlaps with `-r`, things could go wrong. A later patch will handle that case. The feature is also gated by `experimental.rebase.multidest` config option which is default off. Differential Revision: https://phab.mercurial-scm.org/D469
Fri, 11 Aug 2017 00:32:19 -0700 rebase: change internal format to support destination map
Jun Wu <quark@fb.com> [Fri, 11 Aug 2017 00:32:19 -0700] rev 34022
rebase: change internal format to support destination map A later patch will add multiple destination support. This patch changes internal state and the rebase state file format to support that. But the external interface still only supports single destination. A test was added to make sure rebase still supports legacy state file. The new state file is incompatible with old clients. We had done similar state file format change before: 5eac7ab, 92409f8, and 72412af. The state file is transient, so the impact of incompatibility is limited. Besides, the old client won't support multiple destinations anyway so it does not really make sense to make the file format compatible with them. Differential Revision: https://phab.mercurial-scm.org/D348
Fri, 11 Aug 2017 00:31:52 -0700 rebase: rewrite _computeobsoletenotrebased
Jun Wu <quark@fb.com> [Fri, 11 Aug 2017 00:31:52 -0700] rev 34021
rebase: rewrite _computeobsoletenotrebased The old code stores successors of all related nodes together, which works fine if destination is unique. A future patch would make destination non-unique so let's change the implementation to test successors for rebaseset separately. Differential Revision: https://phab.mercurial-scm.org/D347
Tue, 22 Aug 2017 00:38:38 +0000 util: use ~ as a suffix for a temp file in the same directory as a source file
Michael Bolin <mbolin@fb.com> [Tue, 22 Aug 2017 00:38:38 +0000] rev 34020
util: use ~ as a suffix for a temp file in the same directory as a source file Tools like Buck have patterns to ignore the creation of files (in the working copy) that match certain patterns: https://github.com/facebook/buck/blob/39278a4f0701c5239eae148968dc1ed4cc8661f7/src/com/facebook/buck/cli/Main.java#L259-L299 When Buck sees a new source file (as reported by Watchman), it has to invalidate a number of caches associated with the directory that contains the file. Using a standard suffix, such as `~`, would make it easier for Buck and others to filter out these types of file creation events. The other uses of `tempfile.mkstemp()` in Hg do not appear to be problematic because they (generally speaking) do not specify the `dir` parameter, so the new file is created in the system-appropriate temp directory, which is outside the working copy. Test Plan: `make tests` Differential Revision: https://phab.mercurial-scm.org/D468
Mon, 28 Aug 2017 14:47:18 -0700 morestatus: simplify check for unresolved merge conflicts
Martin von Zweigbergk <martinvonz@google.com> [Mon, 28 Aug 2017 14:47:18 -0700] rev 34019
morestatus: simplify check for unresolved merge conflicts Differential Revision: https://phab.mercurial-scm.org/D546
Mon, 28 Aug 2017 15:06:34 -0700 tests: rename test-terse-status.t to test-status-terse.t
Martin von Zweigbergk <martinvonz@google.com> [Mon, 28 Aug 2017 15:06:34 -0700] rev 34018
tests: rename test-terse-status.t to test-status-terse.t When looking for status tests, most people would probably look for "test-status*", so it would be nice if they could find it there. This also let's them run (most) status tests with "run-tests.py test-status*". Differential Revision: https://phab.mercurial-scm.org/D547
Mon, 28 Aug 2017 16:58:59 -0700 metadataonlyctx: don't crash when reusing the manifest with deletions
Jun Wu <quark@fb.com> [Mon, 28 Aug 2017 16:58:59 -0700] rev 34017
metadataonlyctx: don't crash when reusing the manifest with deletions This was originally fixed by Mateusz Kwapich for the `metaedit` command in fb-hgext with a test for the `metaedit` command. It didn't get upstreamed because `metaedit` was not in core. This patch fixes the crash and adds a test about `metadataonlyctx` to avoid future regressions. Differential Revision: https://phab.mercurial-scm.org/D550
Mon, 28 Aug 2017 16:49:41 -0700 context: make parents and text optional in metadataonlyctx
Jun Wu <quark@fb.com> [Mon, 28 Aug 2017 16:49:41 -0700] rev 34016
context: make parents and text optional in metadataonlyctx The metadataonlyctx is to copy an existing context with some minor metadata changes. If the caller only wants to change "extra", or "user", ideally it does not have to read and pass "parents" and "text" information. This patch makes "parents" and "text" optionally to convenient callers. Differential Revision: https://phab.mercurial-scm.org/D548
Thu, 17 Aug 2017 18:09:32 +0200 test: add more obsmarker tests for pruning scenarios
Boris Feld <boris.feld@octobus.net> [Thu, 17 Aug 2017 18:09:32 +0200] rev 34015
test: add more obsmarker tests for pruning scenarios The obsfate output in cases of pruning is not ideal right now, add some tests so have these scenarios around.
Mon, 03 Jul 2017 17:38:56 +0200 template: better prune support in obsfate
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 17:38:56 +0200] rev 34014
template: better prune support in obsfate successorssets don't returns good results for pruned commit, add a workaround for simple cases. A proper fix would require a large rework of successorssets algorithm, I will send a separate series for this refactoring.
Mon, 03 Jul 2017 15:34:10 +0200 template: compute dates in obsfatedate
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 15:34:10 +0200] rev 34013
template: compute dates in obsfatedate Extract the dates from obsmarkers. Compute the min and max date from the obsmarker range list.
Mon, 03 Jul 2017 15:34:00 +0200 template: compute user in obsfateusers
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 15:34:00 +0200] rev 34012
template: compute user in obsfateusers Extract, deduplicate users informations from obs markers in order to display them. Print all users for the moment, we might want to display users only in verbose mode later.
Mon, 03 Jul 2017 15:33:27 +0200 template: compute verb in obsfateverb
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 15:33:27 +0200] rev 34011
template: compute verb in obsfateverb Add a template function obsfateverb which use the markers information to compute a better obsfate verb. The current logic behind the obsfate verb is simple for the moment: - If the successorsets is empty, the changeset has been pruned, for example: Obsfate: pruned - If the successorsets length is 1, the changeset has been rewritten without divergence, for example: Obsfate: rewritten as 2:337fec4d2edc, 3:f257fde29c7a - If the successorsets length is more than 1, the changeset has diverged, for example: Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a As the divergence might occurs on a subset of successors, we might see some successors twice: Obsfate: split as 9:0b997eb7ceee, 5:dd800401bd8c, 10:eceed8f98ffc; split as 8:b18bc8331526, 5:dd800401bd8c, 10:eceed8f98ffc
Tue, 22 Aug 2017 17:16:13 -0400 contrib: add test-check-module-imports.t to the Python 3 whitelist
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 17:16:13 -0400] rev 34010
contrib: add test-check-module-imports.t to the Python 3 whitelist This has the benefit of also catching most (if not all!) old-style print statements and except statements.
Tue, 22 Aug 2017 17:15:20 -0400 tests: update test-obsolete to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 17:15:20 -0400] rev 34009
tests: update test-obsolete to pass our import checker
Tue, 22 Aug 2017 17:15:14 -0400 tests: update test-largefiles-cache to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 17:15:14 -0400] rev 34008
tests: update test-largefiles-cache to pass our import checker
Tue, 22 Aug 2017 17:15:09 -0400 tests: update test-inherit-mode to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 17:15:09 -0400] rev 34007
tests: update test-inherit-mode to pass our import checker
Tue, 22 Aug 2017 17:11:30 -0400 tests: update test-relink to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 17:11:30 -0400] rev 34006
tests: update test-relink to pass our import checker
Tue, 22 Aug 2017 16:59:26 -0400 tests: update test-strip to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:59:26 -0400] rev 34005
tests: update test-strip to pass our import checker
Tue, 22 Aug 2017 16:59:21 -0400 tests: update test-share to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:59:21 -0400] rev 34004
tests: update test-share to pass our import checker
Tue, 22 Aug 2017 16:59:17 -0400 tests: update test-requires to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:59:17 -0400] rev 34003
tests: update test-requires to pass our import checker
Tue, 22 Aug 2017 16:59:12 -0400 tests: update test-progress to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:59:12 -0400] rev 34002
tests: update test-progress to pass our import checker
Tue, 22 Aug 2017 16:59:06 -0400 tests: update test-patchbomb to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:59:06 -0400] rev 34001
tests: update test-patchbomb to pass our import checker
Mon, 28 Aug 2017 17:40:03 -0400 merge with stable
Augie Fackler <augie@google.com> [Mon, 28 Aug 2017 17:40:03 -0400] rev 34000
merge with stable
Wed, 23 Aug 2017 18:24:57 +0000 dirstate: perform transactions with _copymap using single call, where possible
Michael Bolin <mbolin@fb.com> [Wed, 23 Aug 2017 18:24:57 +0000] rev 33999
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
Thu, 24 Aug 2017 20:25:16 -0700 pull: do not prompt "hg update" if update.requiredest is set
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 20:25:16 -0700] rev 33998
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
Fri, 25 Aug 2017 22:05:10 -0700 changelog: abort on attempt to write wdir revision
Martin von Zweigbergk <martinvonz@google.com> [Fri, 25 Aug 2017 22:05:10 -0700] rev 33997
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
Thu, 24 Aug 2017 17:44:08 -0700 phabsend: show associated Differential Revisions with --confirm
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 17:44:08 -0700] rev 33996
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
Thu, 24 Aug 2017 17:31:33 -0700 phabsend: print the actual URL with --confirm
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 17:31:33 -0700] rev 33995
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
Thu, 24 Aug 2017 17:25:18 -0700 phabsend: detect patch change with larger context
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 17:25:18 -0700] rev 33994
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
Thu, 24 Aug 2017 16:52:28 -0700 phabsend: make --amend the default
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 16:52:28 -0700] rev 33993
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
Thu, 24 Aug 2017 17:26:10 -0700 phabsend: polish the docstring a bit
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 17:26:10 -0700] rev 33992
phabsend: polish the docstring a bit Differential Revision: https://phab.mercurial-scm.org/D510
Mon, 28 Aug 2017 13:43:31 +0200 record: make the m key open an editor for the commit message (issue5667)
Peter Vitt <peter.vitt2@uni-siegen.de> [Mon, 28 Aug 2017 13:43:31 +0200] rev 33991
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.
Tue, 22 Aug 2017 16:59:02 -0400 tests: update test-patch to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:59:02 -0400] rev 33990
tests: update test-patch to pass our import checker
Tue, 22 Aug 2017 16:58:57 -0400 tests: update test-pager to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:57 -0400] rev 33989
tests: update test-pager to pass our import checker
Tue, 22 Aug 2017 16:58:52 -0400 tests: update test-obsolete to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:52 -0400] rev 33988
tests: update test-obsolete to pass our import checker
Tue, 22 Aug 2017 16:58:47 -0400 tests: update test-notify to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:47 -0400] rev 33987
tests: update test-notify to pass our import checker
Tue, 22 Aug 2017 16:58:43 -0400 tests: update test-merge1 to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:43 -0400] rev 33986
tests: update test-merge1 to pass our import checker
Tue, 22 Aug 2017 16:58:37 -0400 tests: update test-merge-symlinks to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:37 -0400] rev 33985
tests: update test-merge-symlinks to pass our import checker
Tue, 22 Aug 2017 16:58:28 -0400 tests: update test-logtoprocess to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:28 -0400] rev 33984
tests: update test-logtoprocess to pass our import checker
Tue, 22 Aug 2017 16:58:22 -0400 tests: update test-log to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:22 -0400] rev 33983
tests: update test-log to pass our import checker
Tue, 22 Aug 2017 16:58:13 -0400 tests: update test-log-exthook to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:13 -0400] rev 33982
tests: update test-log-exthook to pass our import checker
Tue, 22 Aug 2017 16:58:07 -0400 tests: update test-largefiles-wireproto to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:58:07 -0400] rev 33981
tests: update test-largefiles-wireproto to pass our import checker
Tue, 22 Aug 2017 16:57:37 -0400 tests: update test-largefiles-small-disk to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:57:37 -0400] rev 33980
tests: update test-largefiles-small-disk to pass our import checker
Tue, 22 Aug 2017 15:51:47 -0400 tests: update test-keyword to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:47 -0400] rev 33979
tests: update test-keyword to pass our import checker
Tue, 22 Aug 2017 15:51:37 -0400 tests: update test-impexp-branch to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:37 -0400] rev 33978
tests: update test-impexp-branch to pass our import checker
Tue, 22 Aug 2017 15:51:30 -0400 tests: update test-help to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:30 -0400] rev 33977
tests: update test-help to pass our import checker
Tue, 22 Aug 2017 15:51:24 -0400 tests: update test-hardlinks to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:24 -0400] rev 33976
tests: update test-hardlinks to pass our import checker
Tue, 22 Aug 2017 15:51:18 -0400 tests: update test-glog to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:18 -0400] rev 33975
tests: update test-glog to pass our import checker
Tue, 22 Aug 2017 15:51:12 -0400 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:12 -0400] rev 33974
tests: update test-fncache to pass our import checker
Tue, 22 Aug 2017 15:51:06 -0400 tests: update test-eol to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:06 -0400] rev 33973
tests: update test-eol to pass our import checker
Tue, 22 Aug 2017 15:50:59 -0400 tests: update test-dirstate to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:59 -0400] rev 33972
tests: update test-dirstate to pass our import checker
Tue, 22 Aug 2017 15:50:35 -0400 tests: update test-debugcommands to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:35 -0400] rev 33971
tests: update test-debugcommands to pass our import checker
Tue, 22 Aug 2017 15:50:27 -0400 tests: update test-convert-clonebranches to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:27 -0400] rev 33970
tests: update test-convert-clonebranches to pass our import checker
Tue, 22 Aug 2017 15:50:01 -0400 tests: update test-commit to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:01 -0400] rev 33969
tests: update test-commit to pass our import checker
Tue, 22 Aug 2017 15:49:54 -0400 tests: update test-command-template to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:49:54 -0400] rev 33968
tests: update test-command-template to pass our import checker
Tue, 22 Aug 2017 15:49:20 -0400 tests: update test-chg to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:49:20 -0400] rev 33967
tests: update test-chg to pass our import checker
Tue, 22 Aug 2017 15:05:51 -0400 tests: update test-bundle2-format to pass import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:05:51 -0400] rev 33966
tests: update test-bundle2-format to pass import checker
Tue, 22 Aug 2017 15:04:36 -0400 tests: update test-bundle2-pushback to pass the import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:04:36 -0400] rev 33965
tests: update test-bundle2-pushback to pass the import checker
Tue, 22 Aug 2017 15:04:14 -0400 tests: update test-bookmarks to pass the import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:04:14 -0400] rev 33964
tests: update test-bookmarks to pass the import checker
Tue, 22 Aug 2017 14:58:39 -0400 tests: update test-bisect to pass our module import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:58:39 -0400] rev 33963
tests: update test-bisect to pass our module import checker
Tue, 22 Aug 2017 14:58:21 -0400 tests: update test-archive to pass our module import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:58:21 -0400] rev 33962
tests: update test-archive to pass our module import checker
Tue, 22 Aug 2017 14:58:10 -0400 tests: update test-annotate to pass our module import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:58:10 -0400] rev 33961
tests: update test-annotate to pass our module import checker
Mon, 03 Jul 2017 03:56:53 +0200 obsolete: fix old typo
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 03:56:53 +0200] rev 33960
obsolete: fix old typo Clean an old typo in successorssets. Differential Revision: https://phab.mercurial-scm.org/D531
Mon, 03 Jul 2017 03:54:24 +0200 obsolete: move merge logic on the smaller object
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 03:54:24 +0200] rev 33959
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
Mon, 28 Aug 2017 04:11:58 +0530 releasenotes: view admonition titles using -l flag
Rishabh Madan <rishabhmadan96@gmail.com> [Mon, 28 Aug 2017 04:11:58 +0530] rev 33958
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
Sat, 26 Aug 2017 16:00:07 -0700 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com> [Sat, 26 Aug 2017 16:00:07 -0700] rev 33957
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
Fri, 25 Aug 2017 15:50:07 -0700 revlog: abort on attempt to write null revision
Martin von Zweigbergk <martinvonz@google.com> [Fri, 25 Aug 2017 15:50:07 -0700] rev 33956
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
Tue, 22 Aug 2017 23:39:05 -0700 context: remove unnecessary default values for matchers (API)
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Aug 2017 23:39:05 -0700] rev 33955
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
Tue, 22 Aug 2017 23:27:55 -0700 context: always pass a matcher into _matchstatus() (API)
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Aug 2017 23:27:55 -0700] rev 33954
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
Wed, 23 Aug 2017 11:30:25 -0700 test-casecollision-merge: fix the test
Jun Wu <quark@fb.com> [Wed, 23 Aug 2017 11:30:25 -0700] rev 33953
test-casecollision-merge: fix the test D30 (055fee3547df) makes the error message unpredictable, therefore the fix. Differential Revision: https://phab.mercurial-scm.org/D494
Sun, 20 Aug 2017 09:46:27 -0700 run-tests: make per-line condition support testcase names
Jun Wu <quark@fb.com> [Sun, 20 Aug 2017 09:46:27 -0700] rev 33952
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
Fri, 25 Aug 2017 13:49:17 -0700 simplemerge: refactor _picklabels to be more compact
Phil Cohen <phillco@fb.com> [Fri, 25 Aug 2017 13:49:17 -0700] rev 33951
simplemerge: refactor _picklabels to be more compact Use @martinvonz's suggestion from D376. Differential Revision: https://phab.mercurial-scm.org/D521
Fri, 25 Aug 2017 13:49:16 -0700 simplemerge: remove check for null context
Phil Cohen <phillco@fb.com> [Fri, 25 Aug 2017 13:49:16 -0700] rev 33950
simplemerge: remove check for null context Differential Revision: https://phab.mercurial-scm.org/D520
Thu, 24 Aug 2017 22:20:02 +0900 run-tests: pass unicode to Pygments
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Aug 2017 22:20:02 +0900] rev 33949
run-tests: pass unicode to Pygments This is required on Python 3, and is more correct on Python 2 because Pygments is a unicode library.
Thu, 24 Aug 2017 22:15:40 +0900 run-tests: factor out highlight functions
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Aug 2017 22:15:40 +0900] rev 33948
run-tests: factor out highlight functions
Thu, 24 Aug 2017 22:09:57 +0900 run-tests: include "\n" in formatted message instead of calling writeln()
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Aug 2017 22:09:57 +0900] rev 33947
run-tests: include "\n" in formatted message instead of calling writeln() So we don't have to strip "\n" from pygments output.
Sun, 23 Apr 2017 13:08:58 +0900 encoding: add fast path of from/toutf8b() for ASCII strings
Yuya Nishihara <yuya@tcha.org> [Sun, 23 Apr 2017 13:08:58 +0900] rev 33946
encoding: add fast path of from/toutf8b() for ASCII strings See the previous patch for why. The added test seems not making much sense because ASCII strings should never contain "\xed" and be valid UTF-8. (with mercurial repo) $ export HGRCPATH=/dev/null HGPLAIN= $ hg log --time --config experimental.stabilization=all -Tjson > /dev/null (original) time: real 6.830 secs (user 6.740+0.000 sys 0.080+0.000) time: real 6.690 secs (user 6.650+0.000 sys 0.040+0.000) time: real 6.700 secs (user 6.640+0.000 sys 0.060+0.000) (fast jsonescape) time: real 5.630 secs (user 5.550+0.000 sys 0.070+0.000) time: real 5.700 secs (user 5.650+0.000 sys 0.050+0.000) time: real 5.690 secs (user 5.640+0.000 sys 0.050+0.000) (this patch) time: real 5.190 secs (user 5.120+0.000 sys 0.070+0.000) time: real 5.230 secs (user 5.170+0.000 sys 0.050+0.000) time: real 5.220 secs (user 5.150+0.000 sys 0.070+0.000)
Sun, 23 Apr 2017 13:06:23 +0900 encoding: add fast path of from/tolocal() for ASCII strings
Yuya Nishihara <yuya@tcha.org> [Sun, 23 Apr 2017 13:06:23 +0900] rev 33945
encoding: add fast path of from/tolocal() for ASCII strings This is micro optimization, but seems not bad since to/fromlocal() is called lots of times and isasciistr() is cheap and simple. We boldly assume that any non-ASCII characters have at least one 8-bit byte. This isn't true for some email character sets (e.g. ISO-2022-JP and UTF-7), but I believe no such encodings are used as a platform default. Shift_JIS, a major crap, is okay as it should have a leading byte in 0x80-0xff range. (with mercurial repo) $ export HGRCPATH=/dev/null HGPLAIN= $ hg log --time --config experimental.stabilization=all > /dev/null (original) time: real 7.460 secs (user 7.420+0.000 sys 0.030+0.000) time: real 7.670 secs (user 7.590+0.000 sys 0.080+0.000) time: real 7.560 secs (user 7.510+0.000 sys 0.040+0.000) (this patch) time: real 7.340 secs (user 7.260+0.000 sys 0.060+0.000) time: real 7.260 secs (user 7.210+0.000 sys 0.030+0.000) time: real 7.310 secs (user 7.260+0.000 sys 0.060+0.000)
Sun, 23 Apr 2017 12:59:42 +0900 encoding: add function to test if a str consists of ASCII characters
Yuya Nishihara <yuya@tcha.org> [Sun, 23 Apr 2017 12:59:42 +0900] rev 33944
encoding: add function to test if a str consists of ASCII characters Most strings are ASCII. Let's optimize for it. Using uint64_t is slightly faster than uint32_t on 64bit system, but there isn't huge difference.
Sun, 23 Apr 2017 14:47:52 +0900 encoding: add fast path of jsonescape() (issue5533)
Yuya Nishihara <yuya@tcha.org> [Sun, 23 Apr 2017 14:47:52 +0900] rev 33943
encoding: add fast path of jsonescape() (issue5533) This isn't highly optimized as it copies characters one by one, but seems reasonably simple and not slow. (with mercurial repo) $ export HGRCPATH=/dev/null HGPLAIN= $ hg log --time --config experimental.stabilization=all -Tjson > /dev/null (original) time: real 6.830 secs (user 6.740+0.000 sys 0.080+0.000) time: real 6.690 secs (user 6.650+0.000 sys 0.040+0.000) time: real 6.700 secs (user 6.640+0.000 sys 0.060+0.000) (this patch) time: real 5.630 secs (user 5.550+0.000 sys 0.070+0.000) time: real 5.700 secs (user 5.650+0.000 sys 0.050+0.000) time: real 5.690 secs (user 5.640+0.000 sys 0.050+0.000)
Sun, 23 Apr 2017 16:10:51 +0900 encoding: extract stub for fast JSON escape
Yuya Nishihara <yuya@tcha.org> [Sun, 23 Apr 2017 16:10:51 +0900] rev 33942
encoding: extract stub for fast JSON escape This moves JSON character maps to pure/charencode.py because they will be used only when the fast-path fails.
Thu, 24 Aug 2017 21:43:54 -0700 journal: do not use atomictemp (issue5338)
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 21:43:54 -0700] rev 33941
journal: do not use atomictemp (issue5338) Writing journal files using `atomictemp` leads to quadratic performance that could be problematic if automation runs many commands. Other logs like blackbox does not use atomictemp, and journal logs are not critical for repo correctness. So let's make them non-atomictemp. Differential Revision: https://phab.mercurial-scm.org/D517
Tue, 22 Aug 2017 14:26:25 -0400 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:26:25 -0400] rev 33940
tests: update test-commandserver to pass our import checker
Tue, 22 Aug 2017 16:37:56 -0400 tests: add blank output lines to test-commandserver
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:37:56 -0400] rev 33939
tests: add blank output lines to test-commandserver This helps the import checker notice when a Python heredoc has ended. It's not perfect, but it gets nasty quick and I think the better fix would be to add a real parser for .t-tests, which will have to wait.
Tue, 22 Aug 2017 16:37:06 -0400 contrib: make import-checker agree more with run-tests about heredocpy
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:37:06 -0400] rev 33938
contrib: make import-checker agree more with run-tests about heredocpy run-tests.py and import-checker.py take wholly different approaches to .t-tests, and the result was that they had different notions about when a Python heredoc had ended, leading to conflicts. This resolves part of the issue, and the rest I can deal with by tweaking the one offending test file.
Tue, 22 Aug 2017 15:28:54 -0400 contrib: add bzrlib to list of packages from which we import symbols
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:28:54 -0400] rev 33937
contrib: add bzrlib to list of packages from which we import symbols Helps some tests pass the import checker.
Tue, 22 Aug 2017 15:50:53 -0400 tests: ensure demandimport test uses absolute_import
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:53 -0400] rev 33936
tests: ensure demandimport test uses absolute_import
Tue, 22 Aug 2017 15:16:58 -0400 tests: blacklist test-demandimport from test-check-module-imports
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:16:58 -0400] rev 33935
tests: blacklist test-demandimport from test-check-module-imports It just does too much weird import stuff to have a hope of passing the checks.
Tue, 22 Aug 2017 15:16:09 -0400 tests: sort excluded test files in test-check-module-imports
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:16:09 -0400] rev 33934
tests: sort excluded test files in test-check-module-imports
Tue, 22 Aug 2017 14:25:06 -0400 contrib: allow symbol imports from hgclient for tests
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:25:06 -0400] rev 33933
contrib: allow symbol imports from hgclient for tests
Tue, 22 Aug 2017 14:15:16 -0400 tests: blacklist some more entries in module import checks
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:15:16 -0400] rev 33932
tests: blacklist some more entries in module import checks
Thu, 24 Aug 2017 09:23:06 +0200 bookmarks: allow deleting active bookmark using '.'
David Demelier <markand@malikania.fr> [Thu, 24 Aug 2017 09:23:06 +0200] rev 33931
bookmarks: allow deleting active bookmark using '.'
Thu, 17 Aug 2017 18:26:11 +0200 template: add minimal obsfate template function
Boris Feld <boris.feld@octobus.net> [Thu, 17 Aug 2017 18:26:11 +0200] rev 33930
template: add minimal obsfate template function The goal of this series is to have templates capable of displaying the evolution of a changeset in a clean and human-readable way. Add the succsandmarkers template return successors and markers so it can be used separately like this: > {succsandmarkers % "{get(succsandmarkers, "markers")|json};"} The following patches will add template functions that takes successors and markers as inputs and compute various obsfate fields from them.
Mon, 03 Jul 2017 03:27:58 +0200 obsolete: track markers in _succs
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 03:27:58 +0200] rev 33929
obsolete: track markers in _succs We now also store markers in _succs. It will be useful for the obsfate template that will use them to display more meaningful information like the list of users that have evolved a changeset into its successors.
Mon, 03 Jul 2017 03:13:17 +0200 obsolete: add an explicit '_succs.copy()' method
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 03:13:17 +0200] rev 33928
obsolete: add an explicit '_succs.copy()' method Mimic the standard API for copying in the _succs class, it makes the code slightly cleaner and will be needed later for copying markers at the same time than copying the list content.
Mon, 03 Jul 2017 00:53:55 +0200 obsolete: introduce a _succs class
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 00:53:55 +0200] rev 33927
obsolete: introduce a _succs class It will be useful later when we will be adding markers to _succs in order to represent a successorset with the list of markers from the root to each successors sets. This information will be needed for the obsfate template I will introduce. Makes it a subclass of list so all callers will continue to work.
Thu, 24 Aug 2017 21:30:51 -0700 simplemerge: simplify code now that we always write to a context
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:30:51 -0700] rev 33926
simplemerge: simplify code now that we always write to a context There's no need for an `out` abstraction between files and contexts anymore. Differential Revision: https://phab.mercurial-scm.org/D383
Thu, 24 Aug 2017 21:30:51 -0700 simplemerge: make context parameters non-optional
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:30:51 -0700] rev 33925
simplemerge: make context parameters non-optional Also update the function docstring. Differential Revision: https://phab.mercurial-scm.org/D382
Thu, 24 Aug 2017 21:30:51 -0700 simplemerge: stop accepting, and passing, file parameters
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:30:51 -0700] rev 33924
simplemerge: stop accepting, and passing, file parameters Differential Revision: https://phab.mercurial-scm.org/D381
Thu, 24 Aug 2017 21:30:37 -0700 simplemerge: stop reading from, and writing to, files
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:30:37 -0700] rev 33923
simplemerge: stop reading from, and writing to, files We now use contexts first for everything and also pass them everywhere. Differential Revision: https://phab.mercurial-scm.org/D380
Thu, 24 Aug 2017 21:30:37 -0700 simplemerge: use context paths for default labels instead of file paths
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:30:37 -0700] rev 33922
simplemerge: use context paths for default labels instead of file paths This is the last place we used the filepath arguments without first using the context version. Differential Revision: https://phab.mercurial-scm.org/D379
Thu, 24 Aug 2017 21:30:37 -0700 contrib: make simplemerge script pass context-like objects
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:30:37 -0700] rev 33921
contrib: make simplemerge script pass context-like objects `simplemerge()` will soon require context-like objects to work. Create a simple context-like object that wraps the requested files and can be passed to the new API. Differential Revision: https://phab.mercurial-scm.org/D378
Thu, 24 Aug 2017 21:26:40 -0700 simplemerge: use `ctx.decoddeddata()` instead of `repo.wreaddata`
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:26:40 -0700] rev 33920
simplemerge: use `ctx.decoddeddata()` instead of `repo.wreaddata` This eliminates the need for the `repo` object. Differential Revision: https://phab.mercurial-scm.org/D435
Thu, 24 Aug 2017 21:26:40 -0700 context: add `decodeddata()` to basefilectx
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:26:40 -0700] rev 33919
context: add `decodeddata()` to basefilectx This will be used as an abstraction by simplemerge to get the data it used to read off the filesystem. Differential Revision: https://phab.mercurial-scm.org/D434
Mon, 21 Aug 2017 08:52:46 +0200 bookmarks: allow renaming active bookmark using '.'
David Demelier <markand@malikania.fr> [Mon, 21 Aug 2017 08:52:46 +0200] rev 33918
bookmarks: allow renaming active bookmark using '.'
Tue, 22 Aug 2017 14:14:52 -0400 i18n: update check-translation script to pass import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:14:52 -0400] rev 33917
i18n: update check-translation script to pass import checker
Tue, 22 Aug 2017 14:14:34 -0400 demandimportpy3: update to pass import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:14:34 -0400] rev 33916
demandimportpy3: update to pass import checker
Tue, 22 Aug 2017 16:02:57 -0400 contrib: always treat importlib.* as stdlib
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:02:57 -0400] rev 33915
contrib: always treat importlib.* as stdlib
Tue, 22 Aug 2017 14:14:19 -0400 hg: update top-level script to use modern import conventions
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:14:19 -0400] rev 33914
hg: update top-level script to use modern import conventions
Tue, 22 Aug 2017 14:13:13 -0400 simplemerge: update to conform with modern import conventions
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:13:13 -0400] rev 33913
simplemerge: update to conform with modern import conventions
Tue, 22 Aug 2017 14:12:37 -0400 contrib: inform import checker that __builtin__ is a thing
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:12:37 -0400] rev 33912
contrib: inform import checker that __builtin__ is a thing
Tue, 22 Aug 2017 14:12:21 -0400 contrib: allow importing "symbols" from mercurial
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:12:21 -0400] rev 33911
contrib: allow importing "symbols" from mercurial
Tue, 22 Aug 2017 14:12:03 -0400 hgperf: update to conform with import style checks
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:12:03 -0400] rev 33910
hgperf: update to conform with import style checks
Tue, 22 Aug 2017 14:11:48 -0400 contrib: update hg-ssh to conform with import style checks
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:11:48 -0400] rev 33909
contrib: update hg-ssh to conform with import style checks
Tue, 22 Aug 2017 12:59:21 -0400 contrib: have import-checker work mostly with native strings for mod names
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 12:59:21 -0400] rev 33908
contrib: have import-checker work mostly with native strings for mod names Module names are a bit awkward to deal with portably otherwise.
Wed, 23 Aug 2017 12:35:03 -0700 bundlerepo: move bundle2 part handling out to a function
Durham Goode <durham@fb.com> [Wed, 23 Aug 2017 12:35:03 -0700] rev 33907
bundlerepo: move bundle2 part handling out to a function This moves the bundle2 part handling for bundlerepo out to a separate function so extensions can participate in bundlerepo setup when using bundle2 bundles. Differential Revision: https://phab.mercurial-scm.org/D290
Wed, 23 Aug 2017 12:35:03 -0700 bundle2: seek part back during iteration
Durham Goode <durham@fb.com> [Wed, 23 Aug 2017 12:35:03 -0700] rev 33906
bundle2: seek part back during iteration Previously, iterparts would yield the part to users, then consume the part. This changed the part after the user was given it and left it at the end, both of which seem unexpected. Let's seek back to the beginning after we've consumed it. I tried not seeking to the end at all, but that seems important for the overall bundle2 consumption. This is used in a future patch to let us move the bundlerepo bundle2-changegroup-part to be handled entirely within the for loop, instead of having to do a seek back to 0 after the entire loop finishes. Differential Revision: https://phab.mercurial-scm.org/D289
(0) -30000 -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 tip