[PATCH] obsolete: add operation metadata to rebase/amend/histedit obsmarkers

Matt Harbison mharbison72 at gmail.com
Wed May 10 21:46:47 EDT 2017


On Tue, 09 May 2017 19:55:57 -0400, Martin von Zweigbergk via  
Mercurial-devel <mercurial-devel at mercurial-scm.org> wrote:

> On Tue, May 9, 2017 at 4:34 PM, Durham Goode <durham at fb.com> wrote:
>> # HG changeset patch
>> # User Durham Goode <durham at fb.com>
>> # Date 1494372571 25200
>> #      Tue May 09 16:29:31 2017 -0700
>> # Node ID 22051b0924bcbc5cde6d25d700dcce6afcaafd98
>> # Parent  8f1a2b848b52ea7bf3fe2404e3b62924c7aae93f
>> obsolete: add operation metadata to rebase/amend/histedit obsmarkers
>>
>> By recording what operation created the obsmarker, we can show very  
>> intuitive
>> messages to the user in various UIs. For instance, log output could have
>> messages like "Amended as XXX" to show why a commit is old and has an  
>> 'x' on it.
>
> Nice! I had previously assumed that that information was already in
> the obsmarker, but then I didn't find it in `hg debugobsolete`. I
> didn't realize it would be so easy to add. Seems like an obvious
> improvement. So obvious that I'm hesitating to queue it only because
> it seems like it should have been proposed before. Any idea why that
> hasn't happened?

It's not obsolete specific, so maybe not relevant, but operation metadata  
made me recall this thread:

https://www.mercurial-scm.org/pipermail/mercurial-devel/2015-April/068692.html

>>
>>      @  ac28e3  durham
>>     /   First commit
>>    |
>>    | o  d4afe7 durham
>>    | |  Second commit
>>    | |
>>    | x  8e9a5d (Amended as ac28e3)  durham
>>    |/   First commit
>>    |
>>
>> diff --git a/hgext/histedit.py b/hgext/histedit.py
>> --- a/hgext/histedit.py
>> +++ b/hgext/histedit.py
>> @@ -1631,7 +1631,7 @@ def safecleanupnode(ui, repo, name, node
>>                               key=repo.changelog.rev)
>>          markers = [getmarker(t) for t in sortednodes]
>>          if markers:
>> -            obsolete.createmarkers(repo, markers)
>> +            obsolete.createmarkers(repo, markers, operation='histedit')
>>      else:
>>          return cleanupnode(ui, repo, name, nodes)
>>
>> diff --git a/hgext/rebase.py b/hgext/rebase.py
>> --- a/hgext/rebase.py
>> +++ b/hgext/rebase.py
>> @@ -1341,7 +1341,7 @@ def clearrebased(ui, repo, state, skippe
>>                      succs = (repo[newrev],)
>>                  markers.append((repo[rev], succs))
>>          if markers:
>> -            obsolete.createmarkers(repo, markers)
>> +            obsolete.createmarkers(repo, markers, operation='rebase')
>>      else:
>>          rebased = [rev for rev in state if state[rev] > nullmerge]
>>          if rebased:
>> diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
>> --- a/mercurial/cmdutil.py
>> +++ b/mercurial/cmdutil.py
>> @@ -2740,7 +2740,7 @@ def amend(ui, repo, commitfunc, old, ext
>>                      if node:
>>                          obs.append((ctx, ()))
>>
>> -                    obsolete.createmarkers(repo, obs)
>> +                    obsolete.createmarkers(repo, obs,  
>> operation='amend')
>>          if not createmarkers and newid != old.node():
>>              # Strip the intermediate commit (if there was one) and the  
>> amended
>>              # commit
>> diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py
>> --- a/mercurial/obsolete.py
>> +++ b/mercurial/obsolete.py
>> @@ -1204,7 +1204,8 @@ def _computedivergentset(repo):
>>      return divergent
>>
>>
>> -def createmarkers(repo, relations, flag=0, date=None, metadata=None):
>> +def createmarkers(repo, relations, flag=0, date=None, metadata=None,
>> +                  operation=None):
>>      """Add obsolete markers between changesets in a repo
>>
>>      <relations> must be an iterable of (<old>, (<new>,  
>> ...)[,{metadata}])
>> @@ -1225,6 +1226,8 @@ def createmarkers(repo, relations, flag=
>>          metadata = {}
>>      if 'user' not in metadata:
>>          metadata['user'] = repo.ui.username()
>> +    if operation:
>> +        metadata['operation'] = operation
>>      tr = repo.transaction('add-obsolescence-marker')
>>      try:
>>          markerargs = []
>> diff --git a/tests/test-histedit-obsolete.t  
>> b/tests/test-histedit-obsolete.t
>> --- a/tests/test-histedit-obsolete.t
>> +++ b/tests/test-histedit-obsolete.t
>> @@ -50,10 +50,10 @@ Test that histedit learns about obsolesc
>>    o  0:cb9a9f314b8b a
>>
>>    $ hg debugobsolete
>> -  e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf  
>> 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
>> -  3e30a45cf2f719e96ab3922dfe039cfd047956ce 0  
>> {e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf} (*) {'user': 'test'} (glob)
>> -  1b2d564fad96311b45362f17c2aa855150efb35f  
>> 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (*) {'user': 'test'} (glob)
>> -  114f4176969ef342759a8a57e6bccefc4234829b  
>> 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
>> +  e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf  
>> 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'operation': 'amend',  
>> 'user': 'test'} (glob)
>> +  3e30a45cf2f719e96ab3922dfe039cfd047956ce 0  
>> {e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf} (*) {'operation': 'amend',  
>> 'user': 'test'} (glob)
>> +  1b2d564fad96311b45362f17c2aa855150efb35f  
>> 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (*) {'operation':  
>> 'histedit', 'user': 'test'} (glob)
>> +  114f4176969ef342759a8a57e6bccefc4234829b  
>> 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'operation':  
>> 'histedit', 'user': 'test'} (glob)
>>
>>  With some node gone missing during the edit.
>>
>> @@ -80,14 +80,14 @@ With some node gone missing during the e
>>    o  0:cb9a9f314b8b a
>>
>>    $ hg debugobsolete
>> -  e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf  
>> 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
>> -  3e30a45cf2f719e96ab3922dfe039cfd047956ce 0  
>> {e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf} (*) {'user': 'test'} (glob)
>> -  1b2d564fad96311b45362f17c2aa855150efb35f  
>> 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (*) {'user': 'test'} (glob)
>> -  114f4176969ef342759a8a57e6bccefc4234829b  
>> 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
>> -  76f72745eac0643d16530e56e2f86e36e40631f1  
>> 2ca853e48edbd6453a0674dc0fe28a0974c51b9c 0 (*) {'user': 'test'} (glob)
>> -  2ca853e48edbd6453a0674dc0fe28a0974c51b9c  
>> aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (*) {'user': 'test'} (glob)
>> -  49d44ab2be1b67a79127568a67c9c99430633b48  
>> 273c1f3b86267ed3ec684bb13af1fa4d6ba56e02 0 (*) {'user': 'test'} (glob)
>> -  46abc7c4d8738e8563e577f7889e1b6db3da4199  
>> aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (*) {'user': 'test'} (glob)
>> +  e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf  
>> 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'operation': 'amend',  
>> 'user': 'test'} (glob)
>> +  3e30a45cf2f719e96ab3922dfe039cfd047956ce 0  
>> {e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf} (*) {'operation': 'amend',  
>> 'user': 'test'} (glob)
>> +  1b2d564fad96311b45362f17c2aa855150efb35f  
>> 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (*) {'operation':  
>> 'histedit', 'user': 'test'} (glob)
>> +  114f4176969ef342759a8a57e6bccefc4234829b  
>> 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'operation':  
>> 'histedit', 'user': 'test'} (glob)
>> +  76f72745eac0643d16530e56e2f86e36e40631f1  
>> 2ca853e48edbd6453a0674dc0fe28a0974c51b9c 0 (*) {'operation': 'amend',  
>> 'user': 'test'} (glob)
>> +  2ca853e48edbd6453a0674dc0fe28a0974c51b9c  
>> aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (*) {'operation': 'amend',  
>> 'user': 'test'} (glob)
>> +  49d44ab2be1b67a79127568a67c9c99430633b48  
>> 273c1f3b86267ed3ec684bb13af1fa4d6ba56e02 0 (*) {'operation':  
>> 'histedit', 'user': 'test'} (glob)
>> +  46abc7c4d8738e8563e577f7889e1b6db3da4199  
>> aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (*) {'operation':  
>> 'histedit', 'user': 'test'} (glob)
>>    $ cd ..
>>
>>  Base setup for the rest of the testing
>> @@ -170,13 +170,13 @@ Base setup for the rest of the testing
>>    o  0:cb9a9f314b8b a
>>
>>    $ hg debugobsolete
>> -  96e494a2d553dd05902ba1cee1d94d4cb7b8faed 0  
>> {b346ab9a313db8537ecf96fca3ca3ca984ef3bd7} (*) {'user': 'test'} (glob)
>> -  b558abc46d09c30f57ac31e85a8a3d64d2e906e4 0  
>> {96e494a2d553dd05902ba1cee1d94d4cb7b8faed} (*) {'user': 'test'} (glob)
>> -  d2ae7f538514cd87c17547b0de4cea71fe1af9fb 0  
>> {cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b} (*) {'user': 'test'} (glob)
>> -  177f92b773850b59254aa5e923436f921b55483b  
>> b346ab9a313db8537ecf96fca3ca3ca984ef3bd7 0 (*) {'user': 'test'} (glob)
>> -  055a42cdd88768532f9cf79daa407fc8d138de9b  
>> 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (*) {'user': 'test'} (glob)
>> -  e860deea161a2f77de56603b340ebbb4536308ae  
>> 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (*) {'user': 'test'} (glob)
>> -  652413bf663ef2a641cab26574e46d5f5a64a55a  
>> cacdfd884a9321ec4e1de275ef3949fa953a1f83 0 (*) {'user': 'test'} (glob)
>> +  96e494a2d553dd05902ba1cee1d94d4cb7b8faed 0  
>> {b346ab9a313db8537ecf96fca3ca3ca984ef3bd7} (*) {'operation':  
>> 'histedit', 'user': 'test'} (glob)
>> +  b558abc46d09c30f57ac31e85a8a3d64d2e906e4 0  
>> {96e494a2d553dd05902ba1cee1d94d4cb7b8faed} (*) {'operation':  
>> 'histedit', 'user': 'test'} (glob)
>> +  d2ae7f538514cd87c17547b0de4cea71fe1af9fb 0  
>> {cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b} (*) {'operation':  
>> 'histedit', 'user': 'test'} (glob)
>> +  177f92b773850b59254aa5e923436f921b55483b  
>> b346ab9a313db8537ecf96fca3ca3ca984ef3bd7 0 (*) {'operation':  
>> 'histedit', 'user': 'test'} (glob)
>> +  055a42cdd88768532f9cf79daa407fc8d138de9b  
>> 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (*) {'operation':  
>> 'histedit', 'user': 'test'} (glob)
>> +  e860deea161a2f77de56603b340ebbb4536308ae  
>> 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (*) {'operation':  
>> 'histedit', 'user': 'test'} (glob)
>> +  652413bf663ef2a641cab26574e46d5f5a64a55a  
>> cacdfd884a9321ec4e1de275ef3949fa953a1f83 0 (*) {'operation':  
>> 'histedit', 'user': 'test'} (glob)
>>
>>
>>  Ensure hidden revision does not prevent histedit
>> diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t
>> --- a/tests/test-obsolete.t
>> +++ b/tests/test-obsolete.t
>> @@ -1247,15 +1247,15 @@ only a subset of those are displayed (be
>>    adding d
>>    $ hg ci --amend -m dd
>>    $ hg debugobsolete --index --rev "3+7"
>> -  1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1  
>> d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 \(.*\) {'user': 'test'} (re)
>> -  3 4715cf767440ed891755448016c2b8cf70760c30  
>> 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 \(.*\) {'user': 'test'} (re)
>> +  1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1  
>> d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 \(.*\) {'operation':  
>> 'amend', 'user': 'test'} (re)
>> +  3 4715cf767440ed891755448016c2b8cf70760c30  
>> 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 \(.*\) {'operation':  
>> 'amend', 'user': 'test'} (re)
>>    $ hg debugobsolete --index --rev "3+7" -Tjson
>>    [
>>     {
>>      "date": *, (glob)
>>      "flag": 0,
>>      "index": 1,
>> -    "metadata": {"user": "test"},
>> +    "metadata": {"operation": "amend", "user": "test"},
>>      "precnode": "6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1",
>>      "succnodes": ["d27fb9b066076fd921277a4b9e8b9cb48c95bc6a"]
>>     },
>> @@ -1263,7 +1263,7 @@ only a subset of those are displayed (be
>>      "date": *, (glob)
>>      "flag": 0,
>>      "index": 3,
>> -    "metadata": {"user": "test"},
>> +    "metadata": {"operation": "amend", "user": "test"},
>>      "precnode": "4715cf767440ed891755448016c2b8cf70760c30",
>>      "succnodes": ["7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d"]
>>     }
>> @@ -1271,14 +1271,14 @@ only a subset of those are displayed (be
>>
>>  Test the --delete option of debugobsolete command
>>    $ hg debugobsolete --index
>> -  0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b  
>> f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 \(.*\) {'user': 'test'} (re)
>> -  1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1  
>> d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 \(.*\) {'user': 'test'} (re)
>> -  2 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74  
>> 29346082e4a9e27042b62d2da0e2de211c027621 0 \(.*\) {'user': 'test'} (re)
>> -  3 4715cf767440ed891755448016c2b8cf70760c30  
>> 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 \(.*\) {'user': 'test'} (re)
>> +  0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b  
>> f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 \(.*\) {'operation':  
>> 'amend', 'user': 'test'} (re)
>> +  1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1  
>> d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 \(.*\) {'operation':  
>> 'amend', 'user': 'test'} (re)
>> +  2 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74  
>> 29346082e4a9e27042b62d2da0e2de211c027621 0 \(.*\) {'operation':  
>> 'amend', 'user': 'test'} (re)
>> +  3 4715cf767440ed891755448016c2b8cf70760c30  
>> 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 \(.*\) {'operation':  
>> 'amend', 'user': 'test'} (re)
>>    $ hg debugobsolete --delete 1 --delete 3
>>    deleted 2 obsolescence markers
>>    $ hg debugobsolete
>> -  cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b  
>> f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 \(.*\) {'user': 'test'} (re)
>> -  1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74  
>> 29346082e4a9e27042b62d2da0e2de211c027621 0 \(.*\) {'user': 'test'} (re)
>> +  cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b  
>> f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 \(.*\) {'operation':  
>> 'amend', 'user': 'test'} (re)
>> +  1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74  
>> 29346082e4a9e27042b62d2da0e2de211c027621 0 \(.*\) {'operation':  
>> 'amend', 'user': 'test'} (re)
>>    $ cd ..
>>
>> diff --git a/tests/test-rebase-obsolete.t b/tests/test-rebase-obsolete.t
>> --- a/tests/test-rebase-obsolete.t
>> +++ b/tests/test-rebase-obsolete.t
>> @@ -100,9 +100,9 @@ simple rebase
>>    o  0:cd010b8cd998 A
>>
>>    $ hg debugobsolete
>> -  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1  
>> e4e5be0395b2cbd471ed22a26b1b6a1a0658a794 0 (*) {'user': 'test'} (glob)
>> -  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b  
>> 2327fea05063f39961b14cb69435a9898dc9a245 0 (*) {'user': 'test'} (glob)
>> -  32af7686d403cf45b5d95f2d70cebea587ac806a  
>> 8eeb3c33ad33d452c89e5dcf611c347f978fb42b 0 (*) {'user': 'test'} (glob)
>> +  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1  
>> e4e5be0395b2cbd471ed22a26b1b6a1a0658a794 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b  
>> 2327fea05063f39961b14cb69435a9898dc9a245 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  32af7686d403cf45b5d95f2d70cebea587ac806a  
>> 8eeb3c33ad33d452c89e5dcf611c347f978fb42b 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>>
>>
>>    $ cd ..
>> @@ -170,9 +170,9 @@ set.
>>    o  0:cd010b8cd998 A
>>
>>    $ hg debugobsolete
>> -  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0  
>> {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
>> -  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b  
>> 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
>> -  32af7686d403cf45b5d95f2d70cebea587ac806a 0  
>> {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'user': 'test'} (glob)
>> +  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0  
>> {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b  
>> 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  32af7686d403cf45b5d95f2d70cebea587ac806a 0  
>> {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>>
>>
>>  More complex case where part of the rebase set were already rebased
>> @@ -180,10 +180,10 @@ More complex case where part of the reba
>>    $ hg rebase --rev 'desc(D)' --dest 'desc(H)'
>>    rebasing 9:08483444fef9 "D"
>>    $ hg debugobsolete
>> -  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0  
>> {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
>> -  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b  
>> 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
>> -  32af7686d403cf45b5d95f2d70cebea587ac806a 0  
>> {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'user': 'test'} (glob)
>> -  08483444fef91d6224f6655ee586a65d263ad34c  
>> 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (*) {'user': 'test'} (glob)
>> +  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0  
>> {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b  
>> 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  32af7686d403cf45b5d95f2d70cebea587ac806a 0  
>> {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  08483444fef91d6224f6655ee586a65d263ad34c  
>> 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>>    $ hg log -G
>>    @  11:4596109a6a43 D
>>    |
>> @@ -208,12 +208,12 @@ More complex case where part of the reba
>>    note: not rebasing 9:08483444fef9 "D", already in destination as  
>> 11:4596109a6a43 "D"
>>    rebasing 10:5ae4c968c6ac "C"
>>    $ hg debugobsolete
>> -  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0  
>> {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
>> -  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b  
>> 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
>> -  32af7686d403cf45b5d95f2d70cebea587ac806a 0  
>> {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'user': 'test'} (glob)
>> -  08483444fef91d6224f6655ee586a65d263ad34c  
>> 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (*) {'user': 'test'} (glob)
>> -  8877864f1edb05d0e07dc4ba77b67a80a7b86672  
>> 462a34d07e599b87ea08676a449373fe4e2e1347 0 (*) {'user': 'test'} (glob)
>> -  5ae4c968c6aca831df823664e706c9d4aa34473d  
>> 98f6af4ee9539e14da4465128f894c274900b6e5 0 (*) {'user': 'test'} (glob)
>> +  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0  
>> {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b  
>> 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  32af7686d403cf45b5d95f2d70cebea587ac806a 0  
>> {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  08483444fef91d6224f6655ee586a65d263ad34c  
>> 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  8877864f1edb05d0e07dc4ba77b67a80a7b86672  
>> 462a34d07e599b87ea08676a449373fe4e2e1347 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  5ae4c968c6aca831df823664e706c9d4aa34473d  
>> 98f6af4ee9539e14da4465128f894c274900b6e5 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>>    $ hg log --rev 'divergent()'
>>    $ hg log -G
>>    o  13:98f6af4ee953 C
>> @@ -349,9 +349,9 @@ collapse rebase
>>    $ hg id --debug -r tip
>>    4dc2197e807bae9817f09905b50ab288be2dbbcf tip
>>    $ hg debugobsolete
>> -  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1  
>> 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'user': 'test'} (glob)
>> -  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b  
>> 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'user': 'test'} (glob)
>> -  32af7686d403cf45b5d95f2d70cebea587ac806a  
>> 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'user': 'test'} (glob)
>> +  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1  
>> 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b  
>> 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  32af7686d403cf45b5d95f2d70cebea587ac806a  
>> 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>>
>>    $ cd ..
>>
>> @@ -411,9 +411,9 @@ not be rebased.
>>    o  0:cd010b8cd998 A
>>
>>    $ hg debugobsolete
>> -  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b  
>> e273c5e7d2d29df783dce9f9eaa3ac4adc69c15d 0 (*) {'user': 'test'} (glob)
>> -  32af7686d403cf45b5d95f2d70cebea587ac806a  
>> cf44d2f5a9f4297a62be94cbdd3dff7c7dc54258 0 (*) {'user': 'test'} (glob)
>> -  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1  
>> 7c6027df6a99d93f461868e5433f63bde20b6dfb 0 (*) {'user': 'test'} (glob)
>> +  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b  
>> e273c5e7d2d29df783dce9f9eaa3ac4adc69c15d 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  32af7686d403cf45b5d95f2d70cebea587ac806a  
>> cf44d2f5a9f4297a62be94cbdd3dff7c7dc54258 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>> +  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1  
>> 7c6027df6a99d93f461868e5433f63bde20b6dfb 0 (*) {'operation': 'rebase',  
>> 'user': 'test'} (glob)
>>
>>  Test that rewriting leaving instability behind is allowed
>>  ---------------------------------------------------------------------
>> _______________________________________________
>> Mercurial-devel mailing list
>> Mercurial-devel at mercurial-scm.org
>> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list