tests/test-evolve-issue6097.t
author Anton Shestakov <av6@dwimlabs.net>
Tue, 10 Mar 2020 17:18:09 +0700
changeset 5330 0bc31f853862
parent 5323 417503ef667d
child 5349 e8660b28bfee
permissions -rw-r--r--
templatekw: add obsorigin keyword

Orphan changeset and trying to relocate a node on top of itself (issue6097)
https://bz.mercurial-scm.org/show_bug.cgi?id=6097

  $ . $TESTDIR/testlib/common.sh

  $ cat << EOF >> $HGRCPATH
  > [extensions]
  > rebase =
  > evolve =
  > EOF

  $ hg init issue6097
  $ cd issue6097

  $ echo apricot > a
  $ hg ci -qAm apricot

  $ echo banana > b
  $ hg ci -qAm banana

Let's go back to amend 0 and make an orphan out of 1

  $ hg up -q 0
  $ echo coconut > c
  $ hg add -q c
  $ hg ci --amend -m 'apricot and coconut'
  1 new orphan changesets

Now rebase the successor of 0 on top of 1

  $ hg rebase -r . -d 1
  rebasing 2:32acf8fb1b23 "apricot and coconut" (tip)
  1 new orphan changesets

Pruning 1 just to get it out of the way

  $ hg prune -q 1

Note how both the regular DAG and the obsolescence graph are linear, but the
paths from 3 to 0 are different: 3-1-0 and 3-2-0

  $ hg log -G
  @  changeset:   3:2868fe6df617
  |  tag:         tip
  |  parent:      1:e0486f65907d
  |  user:        test
  |  date:        Thu Jan 01 00:00:00 1970 +0000
  |  instability: orphan
  |  summary:     apricot and coconut
  |
  x  changeset:   1:e0486f65907d
  |  user:        test
  |  date:        Thu Jan 01 00:00:00 1970 +0000
  |  obsolete:    pruned using prune
  |  summary:     banana
  |
  x  changeset:   0:692cc7b6212c
     user:        test
     date:        Thu Jan 01 00:00:00 1970 +0000
     obsolete:    rewritten using amend, rebase as 3:2868fe6df617
     summary:     apricot
  

  $ hg debugobsolete
  692cc7b6212c102a9eafcf04ed2e4bfca5023754 32acf8fb1b2325c727135dcd65153745a031a125 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'amend', 'user': 'test'}
  32acf8fb1b2325c727135dcd65153745a031a125 2868fe6df617a3045cf668e4ab1c486a8692abd1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'rebase', 'user': 'test'}
  e0486f65907dac7107e72a247386845e6a9fd83b 0 {692cc7b6212c102a9eafcf04ed2e4bfca5023754} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
  $ hg obslog
  @  2868fe6df617 (3) apricot and coconut
  |
  x  32acf8fb1b23 (2) apricot and coconut
  |    rewritten(parent, content) as 2868fe6df617 using rebase by test (Thu Jan 01 00:00:00 1970 +0000)
  |
  x  692cc7b6212c (0) apricot
       rewritten(description, content) as 32acf8fb1b23 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
  

  $ hg evolve -r .
  move:[3] apricot and coconut
  atop:[-1] 
  working directory is now at bb847d1d3a5f

  $ hg log -G
  @  changeset:   4:bb847d1d3a5f
     tag:         tip
     parent:      -1:000000000000
     user:        test
     date:        Thu Jan 01 00:00:00 1970 +0000
     summary:     apricot and coconut
  

  $ hg debugobsolete
  692cc7b6212c102a9eafcf04ed2e4bfca5023754 32acf8fb1b2325c727135dcd65153745a031a125 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'amend', 'user': 'test'}
  32acf8fb1b2325c727135dcd65153745a031a125 2868fe6df617a3045cf668e4ab1c486a8692abd1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'rebase', 'user': 'test'}
  e0486f65907dac7107e72a247386845e6a9fd83b 0 {692cc7b6212c102a9eafcf04ed2e4bfca5023754} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
  2868fe6df617a3045cf668e4ab1c486a8692abd1 bb847d1d3a5f3de90f4fd5e845b69d848568401a 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
  $ hg obslog
  @  bb847d1d3a5f (4) apricot and coconut
  |
  x  2868fe6df617 (3) apricot and coconut
  |    rebased(parent) as bb847d1d3a5f using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
  |
  x  32acf8fb1b23 (2) apricot and coconut
  |    rewritten(parent, content) as 2868fe6df617 using rebase by test (Thu Jan 01 00:00:00 1970 +0000)
  |
  x  692cc7b6212c (0) apricot
       rewritten(description, content) as 32acf8fb1b23 using amend by test (Thu Jan 01 00:00:00 1970 +0000)