# HG changeset patch # User Anton Shestakov # Date 1707328631 10800 # Node ID e0712a00154e5e62718122b26b3555a8efba67f7 # Parent aa51f19c71f6751a84e364f1a47c52d62270631a# Parent 75c048fdcd094c65888afbc085c555298b5c7956 branching: merge with stable diff -r aa51f19c71f6 -r e0712a00154e .gitlab-ci.yml --- a/.gitlab-ci.yml Fri Feb 02 00:12:49 2024 +0100 +++ b/.gitlab-ci.yml Wed Feb 07 14:57:11 2024 -0300 @@ -113,7 +113,7 @@ when: manual deb: - image: registry.heptapod.net/mercurial/ci-images/py3-hgext3rd + image: registry.heptapod.net/mercurial/ci-images/py3-hgext3rd:v2.0 script: - apt-get update && apt-get -yq install devscripts equivs lintian --no-install-recommends - mk-build-deps --install --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' debian/control diff -r aa51f19c71f6 -r e0712a00154e .hgtags --- a/.hgtags Fri Feb 02 00:12:49 2024 +0100 +++ b/.hgtags Wed Feb 07 14:57:11 2024 -0300 @@ -107,3 +107,4 @@ 33f24dd8cfa2c57a7da2fa6757ba41ffc69da794 11.0.1 b9355f6f3093c0cf9698215f05059321880f28da 11.0.2 a625eb5acea4d682becd21759170306ab769afb2 11.1.0 +369e248b6312cc3b0777033a4632f2c9e18a0897 11.1.1 diff -r aa51f19c71f6 -r e0712a00154e CHANGELOG --- a/CHANGELOG Fri Feb 02 00:12:49 2024 +0100 +++ b/CHANGELOG Wed Feb 07 14:57:11 2024 -0300 @@ -7,6 +7,33 @@ * evolve: remove legacy.py that could be used to "detect and convert prehistoric format of obsolete markers" (older than Mercurial 2.3) +11.1.1 -- 2024-02-05 +-------------------- + + * compatibility with Mercurial 6.6 + + * evolve: fix typo in "mercurial" and let hasmemmergestate be True sometimes + + * uncommit: set uncommit_source extra consistently in interactive mode + +topic (1.1.1) + + * compatibility with Mercurial 6.6 + + * topic: properly decode topic and topic namespace after reading from disk + * topic: wrap makebundlerepository() to wrap bundlerepository class + (issue6856) + * topic: internal config option to fix hg pick behavior (issue6406) + * topic: use the appropriate functions to change topic and topic namespace on + working directory update and don't write empty/default values to disk + + * topic namespaces: check that user-provided topic namespace names are + human-readable like topics + * topic namespaces: add tns_heads method to wirepeer directly instead of + using a subclass + * topic namespaces: remove .hg/topic-namespace file if it has the default + value ("none") + 11.1.0 -- 2023-10-23 -------------------- diff -r aa51f19c71f6 -r e0712a00154e debian/changelog --- a/debian/changelog Fri Feb 02 00:12:49 2024 +0100 +++ b/debian/changelog Wed Feb 07 14:57:11 2024 -0300 @@ -1,3 +1,9 @@ +mercurial-evolve (11.1.1-1) unstable; urgency=medium + + * new upstream release + + -- Anton Shestakov Mon, 05 Feb 2024 16:27:09 -0300 + mercurial-evolve (11.1.0-1) unstable; urgency=medium * new upstream release diff -r aa51f19c71f6 -r e0712a00154e hgext3rd/evolve/__init__.py --- a/hgext3rd/evolve/__init__.py Fri Feb 02 00:12:49 2024 +0100 +++ b/hgext3rd/evolve/__init__.py Wed Feb 07 14:57:11 2024 -0300 @@ -808,7 +808,7 @@ if topic and _getcurrenttopic(repo) != _gettopic(target): configoverride = repo.ui.configoverride({ (b'_internal', b'keep-topic'): b'yes' - }, source=b'topic-extension') + }, source=b'previous') with configoverride: _prevupdate(repo, display, target, bookmark, dryrunopt, mergeopt) diff -r aa51f19c71f6 -r e0712a00154e hgext3rd/evolve/cmdrewrite.py --- a/hgext3rd/evolve/cmdrewrite.py Fri Feb 02 00:12:49 2024 +0100 +++ b/hgext3rd/evolve/cmdrewrite.py Wed Feb 07 14:57:11 2024 -0300 @@ -540,10 +540,10 @@ fp.seek(0) oldnode = node.short(old.node()) message = b'temporary commit for uncommiting %s' % oldnode - tempnode = _patchtocommit(ui, repo, old, fp, message, oldnode) + tempnode = _patchtocommit(ui, repo, old, fp, message) return tempnode -def _patchtocommit(ui, repo, old, fp, message=None, extras=None): +def _patchtocommit(ui, repo, old, fp, message=None): """ A function which will apply the patch to the working directory and make a commit whose parents are same as that of old argument. The message argument tells us whether to use the message of the old commit or a @@ -554,9 +554,9 @@ date = old.date() branch = old.branch() user = old.user() - extra = old.extra() - if extras: - extra[b'uncommit_source'] = extras + extra = old.extra().copy() + extra[b'uncommit_source'] = node.short(old.node()) + if not message: message = old.description() store = patch.filestore() @@ -1354,7 +1354,8 @@ def cmdpick(ui, repo, *revs, **opts): """move a commit onto the working directory parent and update to it. - If there is an active topic, it will be used for the resulting changeset. + The resulting changeset will have the current active topic. If there's no + active topic set, the resulting changeset will also not have any topic. """ cont = opts.get('continue') @@ -1416,7 +1417,10 @@ def _dopick(ui, repo, pickstate, origctx): """shared logic for performing or continuing a pick""" - overrides = {(b'phases', b'new-commit'): origctx.phase()} + overrides = { + (b'phases', b'new-commit'): origctx.phase(), + (b'_internal', b'topic-source'): b'local', + } new_desc = evolvecmd._rewrite_commit_message_hashes(repo, origctx.description()) with repo.ui.configoverride(overrides, b'pick'): diff -r aa51f19c71f6 -r e0712a00154e hgext3rd/evolve/metadata.py --- a/hgext3rd/evolve/metadata.py Fri Feb 02 00:12:49 2024 +0100 +++ b/hgext3rd/evolve/metadata.py Wed Feb 07 14:57:11 2024 -0300 @@ -6,6 +6,6 @@ # GNU General Public License version 2 or any later version. __version__ = b'11.2.0.dev0' -testedwith = b'5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3 6.4 6.5' +testedwith = b'5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3 6.4 6.5 6.6' minimumhgversion = b'5.6' buglink = b'https://bz.mercurial-scm.org/' diff -r aa51f19c71f6 -r e0712a00154e hgext3rd/topic/__init__.py --- a/hgext3rd/topic/__init__.py Fri Feb 02 00:12:49 2024 +0100 +++ b/hgext3rd/topic/__init__.py Wed Feb 07 14:57:11 2024 -0300 @@ -157,6 +157,7 @@ from __future__ import absolute_import +import errno import functools import re import time @@ -238,7 +239,7 @@ __version__ = b'1.2.0.dev0' -testedwith = b'5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3 6.4 6.5' +testedwith = b'5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3 6.4 6.5 6.6' minimumhgversion = b'5.6' buglink = b'https://bz.mercurial-scm.org/' @@ -277,6 +278,12 @@ configitem(b'_internal', b'tns-explicit-target', default=False, ) +# used for selecting what topic and topic namespace values take priority during +# some history rewriting operations: 'local' prefers active topic and tns, +# 'other' prefers values in commit extras, if there are any +configitem(b'_internal', b'topic-source', + default=b'other', +) configitem(b'devel', b'tns-report-transactions', default=lambda: [], ) @@ -660,15 +667,26 @@ # bypass the core "nothing changed" logic configoverride = self.ui.configoverride({ (b'ui', b'allowemptycommit'): True - }) + }, b'topic-extension') with configoverride: return super(topicrepo, self).commit(*args, **kwargs) def commitctx(self, ctx, *args, **kwargs): if isinstance(ctx, context.workingcommitctx): - current = self.currenttopic - if current and constants.extrakey not in ctx.extra(): - ctx.extra()[constants.extrakey] = current + tns = self.currenttns + topic = self.currenttopic + # topic source: + # - 'local': we need to put currently active tns and topic into + # commit extras in any case + # - 'other': we could use active tns and topic, but only if + # commit extras don't already have them + ts = self.ui.config(b'_internal', b'topic-source') + if ts == b'local' or (tns != b'none' and b'topic-namespace' not in ctx.extra()): + # default value will be dropped from extra later on + ctx.extra()[b'topic-namespace'] = tns + if ts == b'local' or (topic and constants.extrakey not in ctx.extra()): + # empty value will be dropped from extra later on + ctx.extra()[constants.extrakey] = topic return super(topicrepo, self).commitctx(ctx, *args, **kwargs) @util.propertycache @@ -688,7 +706,29 @@ @property def currenttns(self): - tns = self.vfs.tryread(b'topic-namespace') or b'none' + tns = self.vfs.tryread(b'topic-namespace') + # we should definitely drop this at some point, but it depends on + # our own release schedule, not core's, so here's hg 1.0 + # hg <= 1.0 (cfa08c88a5c4) + if tns == b'none': + try: + with self.wlock(wait=False): + try: + # we make sure the file contains what we expect + if self.vfs.read(b'topic-namespace') == b'none': + repo.vfs.unlinkpath(b'topic-namespace') + except IOError as err: + if err.errno != errno.ENOENT: + raise + except error.LockError: + # if we cannot acquire wdir lock, then we shouldn't do + # anything at all, since it'd be unsafe to modify wdir + pass + elif tns == b'': + # technically, if user creates an empty file, it should be + # handled differently than non-existing file, but the + # distinction is probably not that important + tns = b'none' return encoding.tolocal(tns) @util.propertycache @@ -1684,10 +1724,10 @@ if pctx.phase() > phases.public: tns = pctx.topic_namespace() t = pctx.topic() - repo.vfs.write(b'topic-namespace', tns) + _changecurrenttns(repo, tns) if tns != b'none' and tns != otns: repo.ui.status(_(b"switching to topic-namespace %s\n") % tns) - repo.vfs.write(b'topic', t) + _changecurrenttopic(repo, t) if t and t != ot: repo.ui.status(_(b"switching to topic %s\n") % t) if ot and not t: diff -r aa51f19c71f6 -r e0712a00154e tests/test-namespaces-exchange.t --- a/tests/test-namespaces-exchange.t Fri Feb 02 00:12:49 2024 +0100 +++ b/tests/test-namespaces-exchange.t Wed Feb 07 14:57:11 2024 -0300 @@ -70,6 +70,9 @@ marked working directory as topic: apple $ hg ci -qAm apple + $ hg log -r . -T '{rev}: {join(extras, " ")}\n' + 0: branch=default topic=apple + $ hg incoming -R ../clone comparing with * (glob) 0: apple default//apple (draft) diff -r aa51f19c71f6 -r e0712a00154e tests/test-namespaces.t --- a/tests/test-namespaces.t Fri Feb 02 00:12:49 2024 +0100 +++ b/tests/test-namespaces.t Wed Feb 07 14:57:11 2024 -0300 @@ -11,6 +11,8 @@ marked working directory as topic namespace: space-name $ hg debug-topic-namespaces space-name + $ cat .hg/topic-namespace + space-name (no-eol) $ hg log -r 'wdir()' -T '{topic_namespace}\n' none @@ -34,6 +36,8 @@ Non-ascii topic namespace name $ hg debug-topic-namespace --clear + $ test -f .hg/topic-namespace + [1] $ hg --encoding utf-8 debug-topic-namespace æ marked working directory as topic namespace: \xc3\xa6 (esc) $ hg --encoding utf-8 debug-topic-namespaces @@ -42,6 +46,8 @@ ? (esc) $ hg --encoding latin1 debug-topic-namespaces \xe6 (esc) + $ cat .hg/topic-namespace + \xc3\xa6 (no-eol) (esc) $ hg --encoding utf-8 debug-topic-namespace © abort: invalid topic namespace name: '\xc2\xa9' (esc) @@ -85,25 +91,50 @@ $ hg log -r . -T '{rev}: {fqbn}\n' 0: stable//alice/feature + $ hg log -r . -T '{rev}: {join(extras, " ")}\n' + 0: branch=stable topic=feature topic-namespace=alice + $ hg branches stable//alice/feature 0:69c7dbf6acd1 +Removing topic namespace file if it contains the default value + +The default value changed from b'default' to b'none' in 11.1.0, this is a +safeguard against accidentally putting the new default tns value into commit +extras with an old version of topic extension + + $ printf 'none' > .hg/topic-namespace + $ test -f .hg/topic-namespace + $ hg ci -m '' + nothing changed + [1] + $ test -f .hg/topic-namespace + [1] + Updating to a revision with a namespace should activate it $ hg up null 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg debug-topic-namespace none + $ test -f .hg/topic-namespace + [1] $ hg topics feature (1 changesets) + $ test -f .hg/topic + [1] $ hg up 0 switching to topic-namespace alice switching to topic feature 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg debug-topic-namespace alice + $ cat .hg/topic-namespace + alice (no-eol) $ hg topics * feature (1 changesets) + $ cat .hg/topic + feature (no-eol) Updating to a topic namespace is not supported diff -r aa51f19c71f6 -r e0712a00154e tests/test-pick.t --- a/tests/test-pick.t Fri Feb 02 00:12:49 2024 +0100 +++ b/tests/test-pick.t Wed Feb 07 14:57:11 2024 -0300 @@ -32,7 +32,8 @@ move a commit onto the working directory parent and update to it. - If there is an active topic, it will be used for the resulting changeset. + The resulting changeset will have the current active topic. If there's no + active topic set, the resulting changeset will also not have any topic. options: diff -r aa51f19c71f6 -r e0712a00154e tests/test-topic-issue6406.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-topic-issue6406.t Wed Feb 07 14:57:11 2024 -0300 @@ -0,0 +1,104 @@ +hg pick with no active topic and with a different active topic (issue6406) +https://bz.mercurial-scm.org/show_bug.cgi?id=6406 +For prior discussions on this behavior see also +https://foss.heptapod.net/mercurial/evolve/-/merge_requests/313 +https://foss.heptapod.net/mercurial/evolve/-/merge_requests/390 + + $ . "$TESTDIR/testlib/common.sh" + + $ cat << EOF >> "$HGRCPATH" + > [phases] + > publish = no + > [extensions] + > evolve = + > topic = + > EOF + +#testcases inmemory ondisk +#if inmemory + $ cat >> $HGRCPATH < [experimental] + > evolution.in-memory = yes + > EOF +#endif + + $ hg init issue6406 + $ cd issue6406 + + $ mkcommit ROOT + + $ hg debug-topic-namespace aaa + marked working directory as topic namespace: aaa + $ hg topic a-things + marked working directory as topic: a-things + $ mkcommit apple + active topic 'a-things' grew its first changeset + (see 'hg help topics' for more information) + + $ hg up 'desc("ROOT")' + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg debug-topic-namespace bbb + marked working directory as topic namespace: bbb + $ hg topic b-things + marked working directory as topic: b-things + $ mkcommit banana + active topic 'b-things' grew its first changeset + (see 'hg help topics' for more information) + $ mkcommit blackberry + + $ hg up 'desc("apple")' + switching to topic-namespace aaa + switching to topic a-things + 1 files updated, 0 files merged, 2 files removed, 0 files unresolved + +This is what the help text says about this issue + + $ hg help pick | grep 'active topic' + The resulting changeset will have the current active topic. If there's no + active topic set, the resulting changeset will also not have any topic. + +wdir has no active topic: pick should clear topic of the resulting cset + + $ hg debug-topic-namespace --clear + $ hg topic --clear + $ hg pick 'desc("banana")' + picking 2:fcda3d8dafd2 "banana" + 1 new orphan changesets + $ hg log -r . -T '{rev}: {desc} ({fqbn})\n' + 4: banana (default) + $ hg debug-topic-namespace + none + $ hg topic --current + no active topic + [1] + +wdir has active topic: pick should use the active topic for the resulting cset + + $ hg debug-topic-namespace everything + marked working directory as topic namespace: everything + $ hg topic all-things + marked working directory as topic: all-things + $ hg pick 'desc("blackberry")' + picking 3:48bbfbece8fa "blackberry" + active topic 'all-things' grew its first changeset + (see 'hg help topics' for more information) + $ hg log -r . -T '{rev}: {desc} ({fqbn})\n' + 5: blackberry (default//everything/all-things) + $ hg debug-topic-namespace + everything + $ hg topic --current + all-things + + $ hg log -GT '{rev}: {desc} ({fqbn})\n{join(extras, " ")}\n\n' + @ 5: blackberry (default//everything/all-things) + | branch=default topic=all-things topic-namespace=everything + | + o 4: banana (default) + | branch=default + | + o 1: apple (default//aaa/a-things) + | branch=default topic=a-things topic-namespace=aaa + | + o 0: ROOT (default) + branch=default + diff -r aa51f19c71f6 -r e0712a00154e tests/test-uncommit-interactive.t --- a/tests/test-uncommit-interactive.t Fri Feb 02 00:12:49 2024 +0100 +++ b/tests/test-uncommit-interactive.t Wed Feb 07 14:57:11 2024 -0300 @@ -176,6 +176,9 @@ $ hg debugobsolete e9635f4beaf11f64a07ccc74684092b144c53d89 0 {7733902a8d94c789ca81d866bea1893d79442db6} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'uncommit', 'user': 'test'} f70fb463d5bf9f0ffd38f105521d96e9f2591bc1 678a59e5ff90754d5e94719bd82ad169be773c21 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'note on amend --extract', 'operation': 'uncommit', 'user': 'test'} + $ hg log -l 2 -T '{rev}:{node|short} {join(extras, " ")}\n' --hidden + 3:678a59e5ff90 branch=default uncommit_source=f70fb463d5bf + 2:e9635f4beaf1 branch=default uncommit_source=f70fb463d5bf $ hg obslog @ 678a59e5ff90 (3) another one | amended(content) from f70fb463d5bf using uncommit by test (Thu Jan 01 00:00:00 1970 +0000) @@ -272,7 +275,7 @@ Hunk #1 succeeded at 2 with fuzz 1 (offset 0 lines). $ hg diff - diff -r 46e35360be47 a + diff -r ef651ea03f87 a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +1,6 @@ @@ -293,11 +296,11 @@ # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 46e35360be473bf761bedf3d05de4a68ffd9d9f8 + # Node ID ef651ea03f873a6d70aeeb9ac351d4f65c84fb3b # Parent 7733902a8d94c789ca81d866bea1893d79442db6 another one - diff -r 7733902a8d94 -r 46e35360be47 a + diff -r 7733902a8d94 -r ef651ea03f87 a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +1,7 @@ @@ -315,9 +318,14 @@ e9635f4beaf11f64a07ccc74684092b144c53d89 0 {7733902a8d94c789ca81d866bea1893d79442db6} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'uncommit', 'user': 'test'} f70fb463d5bf9f0ffd38f105521d96e9f2591bc1 678a59e5ff90754d5e94719bd82ad169be773c21 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'note on amend --extract', 'operation': 'uncommit', 'user': 'test'} 7ca9935a62f11b39b60c7fb8861377c7d45b3e99 0 {7733902a8d94c789ca81d866bea1893d79442db6} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'uncommit', 'user': 'test'} - 678a59e5ff90754d5e94719bd82ad169be773c21 46e35360be473bf761bedf3d05de4a68ffd9d9f8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'testing uncommit on dirty wdir', 'operation': 'uncommit', 'user': 'test'} + 678a59e5ff90754d5e94719bd82ad169be773c21 ef651ea03f873a6d70aeeb9ac351d4f65c84fb3b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'testing uncommit on dirty wdir', 'operation': 'uncommit', 'user': 'test'} + $ hg log -l 4 -T '{rev}:{node|short} {join(extras, " ")}\n' --hidden + 5:ef651ea03f87 branch=default uncommit_source=678a59e5ff90 + 4:7ca9935a62f1 branch=default uncommit_source=678a59e5ff90 + 3:678a59e5ff90 branch=default uncommit_source=f70fb463d5bf + 2:e9635f4beaf1 branch=default uncommit_source=f70fb463d5bf $ hg obslog - @ 46e35360be47 (5) another one + @ ef651ea03f87 (5) another one | amended(content) from 678a59e5ff90 using uncommit by test (Thu Jan 01 00:00:00 1970 +0000) | note: testing uncommit on dirty wdir | @@ -332,7 +340,7 @@ $ hg amend $ glog - @ 6:905eb2a23ea2@default(draft) another one + @ 6:f4c93db9c5cd@default(draft) another one | o 0:7733902a8d94@default(draft) The base commit @@ -364,7 +372,7 @@ $ hg status A foo $ hg diff - diff -r 857367499298 foo + diff -r 665843692be0 foo --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/foo Thu Jan 01 00:00:00 1970 +0000 @@ -0,0 +1,1 @@ @@ -375,8 +383,8 @@ # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 857367499298e999b5841bb01df65f73088b5d3b - # Parent 905eb2a23ea2d92073419d0e19165b90d36ea223 + # Node ID 665843692be04cb0619d8ad1f81ec31c7b33f366 + # Parent f4c93db9c5cde0d4ab20badcb9c514cfbf7b9e38 Added foo $ hg amend @@ -391,11 +399,11 @@ # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 219cfe20964e93f8bb9bd82ceaa54d3b776046db - # Parent 42cc15efbec26c14d96d805dee2766ba91d1fd31 + # Node ID 24fcae345f93a1161b224f849c3a9ab362f76f44 + # Parent 3f44e16f88daf37e5798606082ae9895eb90fc4d Removed a - diff -r 42cc15efbec2 -r 219cfe20964e a + diff -r 3f44e16f88da -r 24fcae345f93 a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ @@ -444,7 +452,7 @@ (use 'hg prune .' to remove it) $ hg diff - diff -r 737487f1e5f8 a + diff -r 3778ffc6315b a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ @@ -466,22 +474,22 @@ # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 737487f1e5f853e55decb73ea31522c63e7f5980 - # Parent 42cc15efbec26c14d96d805dee2766ba91d1fd31 + # Node ID 3778ffc6315b9cefdb01c218413677c23bf5bc9f + # Parent 3f44e16f88daf37e5798606082ae9895eb90fc4d Removed a $ hg prune . 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - working directory is now at 42cc15efbec2 + working directory is now at 3f44e16f88da 1 changesets pruned $ hg revert --all undeleting a $ glog - @ 10:42cc15efbec2@default(draft) Added foo + @ 10:3f44e16f88da@default(draft) Added foo | - o 6:905eb2a23ea2@default(draft) another one + o 6:f4c93db9c5cd@default(draft) another one | o 0:7733902a8d94@default(draft) The base commit @@ -527,18 +535,18 @@ # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 25a080d13cb23dbd014839f54d99a96e57ba7e9b - # Parent 42cc15efbec26c14d96d805dee2766ba91d1fd31 + # Node ID 5fcbf1c538b13186c920c63ca6a7dab443ad6663 + # Parent 3f44e16f88daf37e5798606082ae9895eb90fc4d Added x - diff -r 42cc15efbec2 -r 25a080d13cb2 x + diff -r 3f44e16f88da -r 5fcbf1c538b1 x --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/x Thu Jan 01 00:00:00 1970 +0000 @@ -0,0 +1,1 @@ +abcd $ hg diff - diff -r 25a080d13cb2 foo + diff -r 5fcbf1c538b1 foo --- a/foo Thu Jan 01 00:00:00 1970 +0000 +++ b/foo Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +1,2 @@ @@ -555,15 +563,15 @@ ===================================================== $ glog - @ 16:25a080d13cb2@default(draft) Added x + @ 16:5fcbf1c538b1@default(draft) Added x | - o 10:42cc15efbec2@default(draft) Added foo + o 10:3f44e16f88da@default(draft) Added foo | - o 6:905eb2a23ea2@default(draft) another one + o 6:f4c93db9c5cd@default(draft) another one | o 0:7733902a8d94@default(draft) The base commit - $ hg up 905eb2a23ea2 + $ hg up f4c93db9c5cd 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ touch bar @@ -578,11 +586,11 @@ # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 905eb2a23ea2d92073419d0e19165b90d36ea223 + # Node ID f4c93db9c5cde0d4ab20badcb9c514cfbf7b9e38 # Parent 7733902a8d94c789ca81d866bea1893d79442db6 another one - diff -r 7733902a8d94 -r 905eb2a23ea2 a + diff -r 7733902a8d94 -r f4c93db9c5cd a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +1,11 @@ @@ -642,7 +650,7 @@ 2 new orphan changesets $ hg diff - diff -r 676366511f95 a + diff -r 98a3d38b1b81 a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -8,3 +8,4 @@ @@ -650,7 +658,7 @@ 4 5 +babar - diff -r 676366511f95 bar + diff -r 98a3d38b1b81 bar --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bar Thu Jan 01 00:00:00 1970 +0000 @@ -0,0 +1,1 @@ @@ -661,11 +669,11 @@ # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 676366511f95ca4122413dcf79b45eaab61fb387 + # Node ID 98a3d38b1b812aeca00a61a5554dfa228d632b9e # Parent 7733902a8d94c789ca81d866bea1893d79442db6 another one - diff -r 7733902a8d94 -r 676366511f95 a + diff -r 7733902a8d94 -r 98a3d38b1b81 a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +1,10 @@ @@ -724,11 +732,11 @@ # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 62d907d0c4fa13b4b8bfeed05f13751035daf963 + # Node ID 9c6818648d9e694d2decfde377c6821191c5bfd5 # Parent 7733902a8d94c789ca81d866bea1893d79442db6 another one - diff -r 7733902a8d94 -r 62d907d0c4fa a + diff -r 7733902a8d94 -r 9c6818648d9e a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +1,7 @@ @@ -741,7 +749,7 @@ 5 $ hg diff - diff -r 62d907d0c4fa a + diff -r 9c6818648d9e a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +1,6 @@ @@ -756,7 +764,7 @@ 4 5 +babar - diff -r 62d907d0c4fa bar + diff -r 9c6818648d9e bar --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bar Thu Jan 01 00:00:00 1970 +0000 @@ -0,0 +1,1 @@ @@ -792,11 +800,11 @@ # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID be5c67225e80b050867862bbd9f4755c4e9207c5 - # Parent c280a907fddcef2ffe9fadcc2d87f29998e22b2f + # Node ID bbdfefb59fb08650a9a663367ab18a3c2d072691 + # Parent 4f15d398b049b07eb4f4c98d3466a7f708e61735 some more changes - diff -r c280a907fddc -r be5c67225e80 a + diff -r 4f15d398b049 -r bbdfefb59fb0 a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -9,3 +9,4 @@ @@ -804,7 +812,7 @@ 5 babar +celeste - diff -r c280a907fddc -r be5c67225e80 b + diff -r 4f15d398b049 -r bbdfefb59fb0 b --- a/b Thu Jan 01 00:00:00 1970 +0000 +++ b/b Thu Jan 01 00:00:00 1970 +0000 @@ -5,3 +5,4 @@ @@ -830,7 +838,7 @@ M a ? foo.orig $ hg diff - diff -r c701d7c8d18b a + diff -r 0873ba67273f a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -9,3 +9,4 @@ @@ -843,11 +851,11 @@ # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID c701d7c8d18be55a92688f4458c26bd74fb1f525 - # Parent c280a907fddcef2ffe9fadcc2d87f29998e22b2f + # Node ID 0873ba67273ff5654e032c98df89be8cf431cb63 + # Parent 4f15d398b049b07eb4f4c98d3466a7f708e61735 some more changes - diff -r c280a907fddc -r c701d7c8d18b b + diff -r 4f15d398b049 -r 0873ba67273f b --- a/b Thu Jan 01 00:00:00 1970 +0000 +++ b/b Thu Jan 01 00:00:00 1970 +0000 @@ -5,3 +5,4 @@ @@ -904,7 +912,7 @@ ? foo.orig $ hg diff - diff -r 28d5de12b225 a + diff -r 72c07d186be7 a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +1,4 @@ @@ -918,11 +926,11 @@ # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 28d5de12b225d1e0951110cced8d8994227be026 - # Parent c280a907fddcef2ffe9fadcc2d87f29998e22b2f + # Node ID 72c07d186be791e6fa80bfdaf85f493dca503df2 + # Parent 4f15d398b049b07eb4f4c98d3466a7f708e61735 some more changes - diff -r c280a907fddc -r 28d5de12b225 a + diff -r 4f15d398b049 -r 72c07d186be7 a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -9,3 +9,4 @@ @@ -930,7 +938,7 @@ 5 babar +celeste - diff -r c280a907fddc -r 28d5de12b225 b + diff -r 4f15d398b049 -r 72c07d186be7 b --- a/b Thu Jan 01 00:00:00 1970 +0000 +++ b/b Thu Jan 01 00:00:00 1970 +0000 @@ -5,3 +5,4 @@