changeset 44040:58db8f63f4e2

tests: split out ~1/3 of test-graft.t test-graft.t is ~2400 lines and takes 34s to run. This patch moves the last ~1/3 of it to a separate file. The parts now run in 22s + 13s. On top of that, we can remove the #testcases from the old file, so it's only 22s + 2*13s instead of the 2*34s it was before. Differential Revision: https://phab.mercurial-scm.org/D7802
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 27 Dec 2019 15:39:48 -0800
parents f652b7ddc1d4
children fa808e65eabb
files tests/test-graft-interrupted.t tests/test-graft.t
diffstat 2 files changed, 771 insertions(+), 771 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-graft-interrupted.t	Fri Dec 27 15:39:48 2019 -0800
@@ -0,0 +1,771 @@
+#testcases abortcommand abortflag
+
+#if abortflag
+  $ cat >> $HGRCPATH <<EOF
+  > [alias]
+  > abort = graft --abort
+  > EOF
+#endif
+
+
+Testing the reading of old format graftstate file with newer mercurial
+
+  $ hg init oldgraft
+  $ cd oldgraft
+  $ for ch in a b c; do echo foo > $ch; hg add $ch; hg ci -Aqm "added "$ch; done;
+  $ hg log -GT "{rev}:{node|short} {desc}\n"
+  @  2:8be98ac1a569 added c
+  |
+  o  1:80e6d2c47cfe added b
+  |
+  o  0:f7ad41964313 added a
+  
+  $ hg up 0
+  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+  $ echo bar > b
+  $ hg add b
+  $ hg ci -m "bar to b"
+  created new head
+  $ hg graft -r 1 -r 2
+  grafting 1:80e6d2c47cfe "added b"
+  merging b
+  warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
+  abort: unresolved conflicts, can't continue
+  (use 'hg resolve' and 'hg graft --continue')
+  [255]
+
+Writing the nodes in old format to graftstate
+
+  $ hg log -r 1 -r 2 -T '{node}\n' > .hg/graftstate
+  $ echo foo > b
+  $ hg resolve -m
+  (no more unresolved files)
+  continue: hg graft --continue
+  $ hg graft --continue
+  grafting 1:80e6d2c47cfe "added b"
+  grafting 2:8be98ac1a569 "added c"
+
+Testing that --user is preserved during conflicts and value is reused while
+running `hg graft --continue`
+
+  $ hg log -G
+  @  changeset:   5:711e9fa999f1
+  |  tag:         tip
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     added c
+  |
+  o  changeset:   4:e5ad7353b408
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     added b
+  |
+  o  changeset:   3:9e887f7a939c
+  |  parent:      0:f7ad41964313
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     bar to b
+  |
+  | o  changeset:   2:8be98ac1a569
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     added c
+  | |
+  | o  changeset:   1:80e6d2c47cfe
+  |/   user:        test
+  |    date:        Thu Jan 01 00:00:00 1970 +0000
+  |    summary:     added b
+  |
+  o  changeset:   0:f7ad41964313
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     added a
+  
+
+  $ hg up '.^^'
+  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+
+  $ hg graft -r 1 -r 2 --user batman
+  grafting 1:80e6d2c47cfe "added b"
+  merging b
+  warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
+  abort: unresolved conflicts, can't continue
+  (use 'hg resolve' and 'hg graft --continue')
+  [255]
+
+  $ echo wat > b
+  $ hg resolve -m
+  (no more unresolved files)
+  continue: hg graft --continue
+
+  $ hg graft --continue
+  grafting 1:80e6d2c47cfe "added b"
+  grafting 2:8be98ac1a569 "added c"
+
+  $ hg log -Gr 3::
+  @  changeset:   7:11a36ffaacf2
+  |  tag:         tip
+  |  user:        batman
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     added c
+  |
+  o  changeset:   6:76803afc6511
+  |  parent:      3:9e887f7a939c
+  |  user:        batman
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     added b
+  |
+  | o  changeset:   5:711e9fa999f1
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     added c
+  | |
+  | o  changeset:   4:e5ad7353b408
+  |/   user:        test
+  |    date:        Thu Jan 01 00:00:00 1970 +0000
+  |    summary:     added b
+  |
+  o  changeset:   3:9e887f7a939c
+  |  parent:      0:f7ad41964313
+  ~  user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     bar to b
+  
+Test that --date is preserved and reused in `hg graft --continue`
+
+  $ hg up '.^^'
+  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg graft -r 1 -r 2 --date '1234560000 120'
+  grafting 1:80e6d2c47cfe "added b"
+  merging b
+  warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
+  abort: unresolved conflicts, can't continue
+  (use 'hg resolve' and 'hg graft --continue')
+  [255]
+
+  $ echo foobar > b
+  $ hg resolve -m
+  (no more unresolved files)
+  continue: hg graft --continue
+  $ hg graft --continue
+  grafting 1:80e6d2c47cfe "added b"
+  grafting 2:8be98ac1a569 "added c"
+
+  $ hg log -Gr '.^^::.'
+  @  changeset:   9:1896b76e007a
+  |  tag:         tip
+  |  user:        test
+  |  date:        Fri Feb 13 21:18:00 2009 -0002
+  |  summary:     added c
+  |
+  o  changeset:   8:ce2b4f1632af
+  |  parent:      3:9e887f7a939c
+  |  user:        test
+  |  date:        Fri Feb 13 21:18:00 2009 -0002
+  |  summary:     added b
+  |
+  o  changeset:   3:9e887f7a939c
+  |  parent:      0:f7ad41964313
+  ~  user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     bar to b
+  
+Test that --log is preserved and reused in `hg graft --continue`
+
+  $ hg up '.^^'
+  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg graft -r 1 -r 2 --log
+  grafting 1:80e6d2c47cfe "added b"
+  merging b
+  warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
+  abort: unresolved conflicts, can't continue
+  (use 'hg resolve' and 'hg graft --continue')
+  [255]
+
+  $ echo foobar > b
+  $ hg resolve -m
+  (no more unresolved files)
+  continue: hg graft --continue
+
+  $ hg graft --continue
+  grafting 1:80e6d2c47cfe "added b"
+  grafting 2:8be98ac1a569 "added c"
+
+  $ hg log -GT "{rev}:{node|short} {desc}" -r '.^^::.'
+  @  11:30c1050a58b2 added c
+  |  (grafted from 8be98ac1a56990c2d9ca6861041b8390af7bd6f3)
+  o  10:ec7eda2313e2 added b
+  |  (grafted from 80e6d2c47cfe5b3185519568327a17a061c7efb6)
+  o  3:9e887f7a939c bar to b
+  |
+  ~
+
+  $ cd ..
+
+Testing the --stop flag of `hg graft` which stops the interrupted graft
+
+  $ hg init stopgraft
+  $ cd stopgraft
+  $ for ch in a b c d; do echo $ch > $ch; hg add $ch; hg ci -Aqm "added "$ch; done;
+
+  $ hg log -G
+  @  changeset:   3:9150fe93bec6
+  |  tag:         tip
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     added d
+  |
+  o  changeset:   2:155349b645be
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     added c
+  |
+  o  changeset:   1:5f6d8a4bf34a
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     added b
+  |
+  o  changeset:   0:9092f1db7931
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     added a
+  
+  $ hg up '.^^'
+  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+
+  $ echo foo > d
+  $ hg ci -Aqm "added foo to d"
+
+  $ hg graft --stop
+  abort: no interrupted graft found
+  [255]
+
+  $ hg graft -r 3
+  grafting 3:9150fe93bec6 "added d"
+  merging d
+  warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
+  abort: unresolved conflicts, can't continue
+  (use 'hg resolve' and 'hg graft --continue')
+  [255]
+
+  $ hg graft --stop --continue
+  abort: cannot use '--continue' and '--stop' together
+  [255]
+
+  $ hg graft --stop -U
+  abort: cannot specify any other flag with '--stop'
+  [255]
+  $ hg graft --stop --rev 4
+  abort: cannot specify any other flag with '--stop'
+  [255]
+  $ hg graft --stop --log
+  abort: cannot specify any other flag with '--stop'
+  [255]
+
+  $ hg graft --stop
+  stopped the interrupted graft
+  working directory is now at a0deacecd59d
+
+  $ hg diff
+
+  $ hg log -Gr '.'
+  @  changeset:   4:a0deacecd59d
+  |  tag:         tip
+  ~  parent:      1:5f6d8a4bf34a
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     added foo to d
+  
+  $ hg graft -r 2 -r 3
+  grafting 2:155349b645be "added c"
+  grafting 3:9150fe93bec6 "added d"
+  merging d
+  warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
+  abort: unresolved conflicts, can't continue
+  (use 'hg resolve' and 'hg graft --continue')
+  [255]
+
+  $ hg graft --stop
+  stopped the interrupted graft
+  working directory is now at 75b447541a9e
+
+  $ hg diff
+
+  $ hg log -G -T "{rev}:{node|short} {desc}"
+  @  5:75b447541a9e added c
+  |
+  o  4:a0deacecd59d added foo to d
+  |
+  | o  3:9150fe93bec6 added d
+  | |
+  | o  2:155349b645be added c
+  |/
+  o  1:5f6d8a4bf34a added b
+  |
+  o  0:9092f1db7931 added a
+  
+  $ cd ..
+
+Testing the --abort flag for `hg graft` which aborts and rollback to state
+before the graft
+
+  $ hg init abortgraft
+  $ cd abortgraft
+  $ for ch in a b c d; do echo $ch > $ch; hg add $ch; hg ci -Aqm "added "$ch; done;
+
+  $ hg up '.^^'
+  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+
+  $ echo x > x
+  $ hg ci -Aqm "added x"
+  $ hg up '.^'
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ echo foo > c
+  $ hg ci -Aqm "added foo to c"
+
+  $ hg log -GT "{rev}:{node|short} {desc}"
+  @  5:36b793615f78 added foo to c
+  |
+  | o  4:863a25e1a9ea added x
+  |/
+  | o  3:9150fe93bec6 added d
+  | |
+  | o  2:155349b645be added c
+  |/
+  o  1:5f6d8a4bf34a added b
+  |
+  o  0:9092f1db7931 added a
+  
+  $ hg up 9150fe93bec6
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+  $ hg abort
+  abort: no interrupted graft to abort (abortflag !)
+  abort: no operation in progress (abortcommand !)
+  [255]
+
+when stripping is required
+  $ hg graft -r 4 -r 5
+  grafting 4:863a25e1a9ea "added x"
+  grafting 5:36b793615f78 "added foo to c" (tip)
+  merging c
+  warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
+  abort: unresolved conflicts, can't continue
+  (use 'hg resolve' and 'hg graft --continue')
+  [255]
+
+  $ hg graft --continue --abort
+  abort: cannot use '--continue' and '--abort' together
+  [255]
+
+  $ hg graft --abort --stop
+  abort: cannot use '--abort' and '--stop' together
+  [255]
+
+  $ hg graft --abort --currentuser
+  abort: cannot specify any other flag with '--abort'
+  [255]
+
+  $ hg graft --abort --edit
+  abort: cannot specify any other flag with '--abort'
+  [255]
+
+#if abortcommand
+when in dry-run mode
+  $ hg abort --dry-run
+  graft in progress, will be aborted
+#endif
+
+  $ hg abort
+  graft aborted
+  working directory is now at 9150fe93bec6
+  $ hg log -GT "{rev}:{node|short} {desc}"
+  o  5:36b793615f78 added foo to c
+  |
+  | o  4:863a25e1a9ea added x
+  |/
+  | @  3:9150fe93bec6 added d
+  | |
+  | o  2:155349b645be added c
+  |/
+  o  1:5f6d8a4bf34a added b
+  |
+  o  0:9092f1db7931 added a
+  
+when stripping is not required
+  $ hg graft -r 5
+  grafting 5:36b793615f78 "added foo to c" (tip)
+  merging c
+  warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
+  abort: unresolved conflicts, can't continue
+  (use 'hg resolve' and 'hg graft --continue')
+  [255]
+
+  $ hg abort
+  graft aborted
+  working directory is now at 9150fe93bec6
+  $ hg log -GT "{rev}:{node|short} {desc}"
+  o  5:36b793615f78 added foo to c
+  |
+  | o  4:863a25e1a9ea added x
+  |/
+  | @  3:9150fe93bec6 added d
+  | |
+  | o  2:155349b645be added c
+  |/
+  o  1:5f6d8a4bf34a added b
+  |
+  o  0:9092f1db7931 added a
+  
+when some of the changesets became public
+
+  $ hg graft -r 4 -r 5
+  grafting 4:863a25e1a9ea "added x"
+  grafting 5:36b793615f78 "added foo to c" (tip)
+  merging c
+  warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
+  abort: unresolved conflicts, can't continue
+  (use 'hg resolve' and 'hg graft --continue')
+  [255]
+
+  $ hg log -GT "{rev}:{node|short} {desc}"
+  @  6:6ec71c037d94 added x
+  |
+  | o  5:36b793615f78 added foo to c
+  | |
+  | | o  4:863a25e1a9ea added x
+  | |/
+  o |  3:9150fe93bec6 added d
+  | |
+  o |  2:155349b645be added c
+  |/
+  o  1:5f6d8a4bf34a added b
+  |
+  o  0:9092f1db7931 added a
+  
+  $ hg phase -r 6 --public
+
+  $ hg abort
+  cannot clean up public changesets 6ec71c037d94
+  graft aborted
+  working directory is now at 6ec71c037d94
+
+when we created new changesets on top of existing one
+
+  $ hg up '.^^'
+  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+  $ echo y > y
+  $ hg ci -Aqm "added y"
+  $ echo z > z
+  $ hg ci -Aqm "added z"
+
+  $ hg up 3
+  1 files updated, 0 files merged, 3 files removed, 0 files unresolved
+  $ hg log -GT "{rev}:{node|short} {desc}"
+  o  8:637f9e9bbfd4 added z
+  |
+  o  7:123221671fd4 added y
+  |
+  | o  6:6ec71c037d94 added x
+  | |
+  | | o  5:36b793615f78 added foo to c
+  | | |
+  | | | o  4:863a25e1a9ea added x
+  | | |/
+  | @ |  3:9150fe93bec6 added d
+  |/ /
+  o /  2:155349b645be added c
+  |/
+  o  1:5f6d8a4bf34a added b
+  |
+  o  0:9092f1db7931 added a
+  
+  $ hg graft -r 8 -r 7 -r 5
+  grafting 8:637f9e9bbfd4 "added z" (tip)
+  grafting 7:123221671fd4 "added y"
+  grafting 5:36b793615f78 "added foo to c"
+  merging c
+  warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
+  abort: unresolved conflicts, can't continue
+  (use 'hg resolve' and 'hg graft --continue')
+  [255]
+
+  $ cd ..
+  $ hg init pullrepo
+  $ cd pullrepo
+  $ cat >> .hg/hgrc <<EOF
+  > [phases]
+  > publish=False
+  > EOF
+  $ hg pull ../abortgraft --config phases.publish=False
+  pulling from ../abortgraft
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 11 changesets with 9 changes to 8 files (+4 heads)
+  new changesets 9092f1db7931:6b98ff0062dd (6 drafts)
+  (run 'hg heads' to see heads, 'hg merge' to merge)
+  $ hg up 9
+  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo w > w
+  $ hg ci -Aqm "added w" --config phases.publish=False
+
+  $ cd ../abortgraft
+  $ hg pull ../pullrepo
+  pulling from ../pullrepo
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files (+1 heads)
+  new changesets 311dfc6cf3bf (1 drafts)
+  (run 'hg heads .' to see heads, 'hg merge' to merge)
+
+  $ hg abort
+  new changesets detected on destination branch, can't strip
+  graft aborted
+  working directory is now at 6b98ff0062dd
+
+  $ cd ..
+
+============================
+Testing --no-commit option:|
+============================
+
+  $ hg init nocommit
+  $ cd nocommit
+  $ echo a > a
+  $ hg ci -qAma
+  $ echo b > b
+  $ hg ci -qAmb
+  $ hg up -q 0
+  $ echo c > c
+  $ hg ci -qAmc
+  $ hg log -GT "{rev}:{node|short} {desc}\n"
+  @  2:d36c0562f908 c
+  |
+  | o  1:d2ae7f538514 b
+  |/
+  o  0:cb9a9f314b8b a
+  
+
+Check reporting when --no-commit used with non-applicable options:
+
+  $ hg graft 1 --no-commit -e
+  abort: cannot specify --no-commit and --edit together
+  [255]
+
+  $ hg graft 1 --no-commit --log
+  abort: cannot specify --no-commit and --log together
+  [255]
+
+  $ hg graft 1 --no-commit -D
+  abort: cannot specify --no-commit and --currentdate together
+  [255]
+
+Test --no-commit is working:
+  $ hg graft 1 --no-commit
+  grafting 1:d2ae7f538514 "b"
+
+  $ hg log -GT "{rev}:{node|short} {desc}\n"
+  @  2:d36c0562f908 c
+  |
+  | o  1:d2ae7f538514 b
+  |/
+  o  0:cb9a9f314b8b a
+  
+
+  $ hg diff
+  diff -r d36c0562f908 b
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/b	Thu Jan 01 00:00:00 1970 +0000
+  @@ -0,0 +1,1 @@
+  +b
+
+Prepare wrdir to check --no-commit is resepected after --continue:
+
+  $ hg up -qC
+  $ echo A>a
+  $ hg ci -qm "A in file a"
+  $ hg up -q 1
+  $ echo B>a
+  $ hg ci -qm "B in file a"
+  $ hg log -GT "{rev}:{node|short} {desc}\n"
+  @  4:2aa9ad1006ff B in file a
+  |
+  | o  3:09e253b87e17 A in file a
+  | |
+  | o  2:d36c0562f908 c
+  | |
+  o |  1:d2ae7f538514 b
+  |/
+  o  0:cb9a9f314b8b a
+  
+
+  $ hg graft 3 --no-commit
+  grafting 3:09e253b87e17 "A in file a"
+  merging a
+  warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
+  abort: unresolved conflicts, can't continue
+  (use 'hg resolve' and 'hg graft --continue')
+  [255]
+
+Resolve conflict:
+  $ echo A>a
+  $ hg resolve --mark
+  (no more unresolved files)
+  continue: hg graft --continue
+
+  $ hg graft --continue
+  grafting 3:09e253b87e17 "A in file a"
+  $ hg log -GT "{rev}:{node|short} {desc}\n"
+  @  4:2aa9ad1006ff B in file a
+  |
+  | o  3:09e253b87e17 A in file a
+  | |
+  | o  2:d36c0562f908 c
+  | |
+  o |  1:d2ae7f538514 b
+  |/
+  o  0:cb9a9f314b8b a
+  
+  $ hg diff
+  diff -r 2aa9ad1006ff a
+  --- a/a	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/a	Thu Jan 01 00:00:00 1970 +0000
+  @@ -1,1 +1,1 @@
+  -B
+  +A
+
+  $ hg up -qC
+
+Check --no-commit is resepected when passed with --continue:
+
+  $ hg graft 3
+  grafting 3:09e253b87e17 "A in file a"
+  merging a
+  warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
+  abort: unresolved conflicts, can't continue
+  (use 'hg resolve' and 'hg graft --continue')
+  [255]
+
+Resolve conflict:
+  $ echo A>a
+  $ hg resolve --mark
+  (no more unresolved files)
+  continue: hg graft --continue
+
+  $ hg graft --continue --no-commit
+  grafting 3:09e253b87e17 "A in file a"
+  $ hg diff
+  diff -r 2aa9ad1006ff a
+  --- a/a	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/a	Thu Jan 01 00:00:00 1970 +0000
+  @@ -1,1 +1,1 @@
+  -B
+  +A
+
+  $ hg log -GT "{rev}:{node|short} {desc}\n"
+  @  4:2aa9ad1006ff B in file a
+  |
+  | o  3:09e253b87e17 A in file a
+  | |
+  | o  2:d36c0562f908 c
+  | |
+  o |  1:d2ae7f538514 b
+  |/
+  o  0:cb9a9f314b8b a
+  
+  $ hg up -qC
+
+Test --no-commit when graft multiple revisions:
+When there is conflict:
+  $ hg graft -r "2::3" --no-commit
+  grafting 2:d36c0562f908 "c"
+  grafting 3:09e253b87e17 "A in file a"
+  merging a
+  warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
+  abort: unresolved conflicts, can't continue
+  (use 'hg resolve' and 'hg graft --continue')
+  [255]
+
+  $ echo A>a
+  $ hg resolve --mark
+  (no more unresolved files)
+  continue: hg graft --continue
+  $ hg graft --continue
+  grafting 3:09e253b87e17 "A in file a"
+  $ hg diff
+  diff -r 2aa9ad1006ff a
+  --- a/a	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/a	Thu Jan 01 00:00:00 1970 +0000
+  @@ -1,1 +1,1 @@
+  -B
+  +A
+  diff -r 2aa9ad1006ff c
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/c	Thu Jan 01 00:00:00 1970 +0000
+  @@ -0,0 +1,1 @@
+  +c
+
+  $ hg log -GT "{rev}:{node|short} {desc}\n"
+  @  4:2aa9ad1006ff B in file a
+  |
+  | o  3:09e253b87e17 A in file a
+  | |
+  | o  2:d36c0562f908 c
+  | |
+  o |  1:d2ae7f538514 b
+  |/
+  o  0:cb9a9f314b8b a
+  
+  $ hg up -qC
+
+When there is no conflict:
+  $ echo d>d
+  $ hg add d -q
+  $ hg ci -qmd
+  $ hg up 3 -q
+  $ hg log -GT "{rev}:{node|short} {desc}\n"
+  o  5:baefa8927fc0 d
+  |
+  o  4:2aa9ad1006ff B in file a
+  |
+  | @  3:09e253b87e17 A in file a
+  | |
+  | o  2:d36c0562f908 c
+  | |
+  o |  1:d2ae7f538514 b
+  |/
+  o  0:cb9a9f314b8b a
+  
+
+  $ hg graft -r 1 -r 5 --no-commit
+  grafting 1:d2ae7f538514 "b"
+  grafting 5:baefa8927fc0 "d" (tip)
+  $ hg diff
+  diff -r 09e253b87e17 b
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/b	Thu Jan 01 00:00:00 1970 +0000
+  @@ -0,0 +1,1 @@
+  +b
+  diff -r 09e253b87e17 d
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/d	Thu Jan 01 00:00:00 1970 +0000
+  @@ -0,0 +1,1 @@
+  +d
+  $ hg log -GT "{rev}:{node|short} {desc}\n"
+  o  5:baefa8927fc0 d
+  |
+  o  4:2aa9ad1006ff B in file a
+  |
+  | @  3:09e253b87e17 A in file a
+  | |
+  | o  2:d36c0562f908 c
+  | |
+  o |  1:d2ae7f538514 b
+  |/
+  o  0:cb9a9f314b8b a
+  
+  $ cd ..
--- a/tests/test-graft.t	Fri Dec 27 14:08:02 2019 -0800
+++ b/tests/test-graft.t	Fri Dec 27 15:39:48 2019 -0800
@@ -1,18 +1,9 @@
-#testcases abortcommand abortflag
-
   $ cat >> $HGRCPATH <<EOF
   > [extdiff]
   > # for portability:
   > pdiff = sh "$RUNTESTDIR/pdiff"
   > EOF
 
-#if abortflag
-  $ cat >> $HGRCPATH <<EOF
-  > [alias]
-  > abort = graft --abort
-  > EOF
-#endif
-
 Create a repo with some stuff in it:
 
   $ hg init a
@@ -1663,765 +1654,3 @@
   [255]
 
   $ cd ../..
-
-Testing the reading of old format graftstate file with newer mercurial
-
-  $ hg init oldgraft
-  $ cd oldgraft
-  $ for ch in a b c; do echo foo > $ch; hg add $ch; hg ci -Aqm "added "$ch; done;
-  $ hg log -GT "{rev}:{node|short} {desc}\n"
-  @  2:8be98ac1a569 added c
-  |
-  o  1:80e6d2c47cfe added b
-  |
-  o  0:f7ad41964313 added a
-  
-  $ hg up 0
-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
-  $ echo bar > b
-  $ hg add b
-  $ hg ci -m "bar to b"
-  created new head
-  $ hg graft -r 1 -r 2
-  grafting 1:80e6d2c47cfe "added b"
-  merging b
-  warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
-  abort: unresolved conflicts, can't continue
-  (use 'hg resolve' and 'hg graft --continue')
-  [255]
-
-Writing the nodes in old format to graftstate
-
-  $ hg log -r 1 -r 2 -T '{node}\n' > .hg/graftstate
-  $ echo foo > b
-  $ hg resolve -m
-  (no more unresolved files)
-  continue: hg graft --continue
-  $ hg graft --continue
-  grafting 1:80e6d2c47cfe "added b"
-  grafting 2:8be98ac1a569 "added c"
-
-Testing that --user is preserved during conflicts and value is reused while
-running `hg graft --continue`
-
-  $ hg log -G
-  @  changeset:   5:711e9fa999f1
-  |  tag:         tip
-  |  user:        test
-  |  date:        Thu Jan 01 00:00:00 1970 +0000
-  |  summary:     added c
-  |
-  o  changeset:   4:e5ad7353b408
-  |  user:        test
-  |  date:        Thu Jan 01 00:00:00 1970 +0000
-  |  summary:     added b
-  |
-  o  changeset:   3:9e887f7a939c
-  |  parent:      0:f7ad41964313
-  |  user:        test
-  |  date:        Thu Jan 01 00:00:00 1970 +0000
-  |  summary:     bar to b
-  |
-  | o  changeset:   2:8be98ac1a569
-  | |  user:        test
-  | |  date:        Thu Jan 01 00:00:00 1970 +0000
-  | |  summary:     added c
-  | |
-  | o  changeset:   1:80e6d2c47cfe
-  |/   user:        test
-  |    date:        Thu Jan 01 00:00:00 1970 +0000
-  |    summary:     added b
-  |
-  o  changeset:   0:f7ad41964313
-     user:        test
-     date:        Thu Jan 01 00:00:00 1970 +0000
-     summary:     added a
-  
-
-  $ hg up '.^^'
-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
-
-  $ hg graft -r 1 -r 2 --user batman
-  grafting 1:80e6d2c47cfe "added b"
-  merging b
-  warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
-  abort: unresolved conflicts, can't continue
-  (use 'hg resolve' and 'hg graft --continue')
-  [255]
-
-  $ echo wat > b
-  $ hg resolve -m
-  (no more unresolved files)
-  continue: hg graft --continue
-
-  $ hg graft --continue
-  grafting 1:80e6d2c47cfe "added b"
-  grafting 2:8be98ac1a569 "added c"
-
-  $ hg log -Gr 3::
-  @  changeset:   7:11a36ffaacf2
-  |  tag:         tip
-  |  user:        batman
-  |  date:        Thu Jan 01 00:00:00 1970 +0000
-  |  summary:     added c
-  |
-  o  changeset:   6:76803afc6511
-  |  parent:      3:9e887f7a939c
-  |  user:        batman
-  |  date:        Thu Jan 01 00:00:00 1970 +0000
-  |  summary:     added b
-  |
-  | o  changeset:   5:711e9fa999f1
-  | |  user:        test
-  | |  date:        Thu Jan 01 00:00:00 1970 +0000
-  | |  summary:     added c
-  | |
-  | o  changeset:   4:e5ad7353b408
-  |/   user:        test
-  |    date:        Thu Jan 01 00:00:00 1970 +0000
-  |    summary:     added b
-  |
-  o  changeset:   3:9e887f7a939c
-  |  parent:      0:f7ad41964313
-  ~  user:        test
-     date:        Thu Jan 01 00:00:00 1970 +0000
-     summary:     bar to b
-  
-Test that --date is preserved and reused in `hg graft --continue`
-
-  $ hg up '.^^'
-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
-  $ hg graft -r 1 -r 2 --date '1234560000 120'
-  grafting 1:80e6d2c47cfe "added b"
-  merging b
-  warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
-  abort: unresolved conflicts, can't continue
-  (use 'hg resolve' and 'hg graft --continue')
-  [255]
-
-  $ echo foobar > b
-  $ hg resolve -m
-  (no more unresolved files)
-  continue: hg graft --continue
-  $ hg graft --continue
-  grafting 1:80e6d2c47cfe "added b"
-  grafting 2:8be98ac1a569 "added c"
-
-  $ hg log -Gr '.^^::.'
-  @  changeset:   9:1896b76e007a
-  |  tag:         tip
-  |  user:        test
-  |  date:        Fri Feb 13 21:18:00 2009 -0002
-  |  summary:     added c
-  |
-  o  changeset:   8:ce2b4f1632af
-  |  parent:      3:9e887f7a939c
-  |  user:        test
-  |  date:        Fri Feb 13 21:18:00 2009 -0002
-  |  summary:     added b
-  |
-  o  changeset:   3:9e887f7a939c
-  |  parent:      0:f7ad41964313
-  ~  user:        test
-     date:        Thu Jan 01 00:00:00 1970 +0000
-     summary:     bar to b
-  
-Test that --log is preserved and reused in `hg graft --continue`
-
-  $ hg up '.^^'
-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
-  $ hg graft -r 1 -r 2 --log
-  grafting 1:80e6d2c47cfe "added b"
-  merging b
-  warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
-  abort: unresolved conflicts, can't continue
-  (use 'hg resolve' and 'hg graft --continue')
-  [255]
-
-  $ echo foobar > b
-  $ hg resolve -m
-  (no more unresolved files)
-  continue: hg graft --continue
-
-  $ hg graft --continue
-  grafting 1:80e6d2c47cfe "added b"
-  grafting 2:8be98ac1a569 "added c"
-
-  $ hg log -GT "{rev}:{node|short} {desc}" -r '.^^::.'
-  @  11:30c1050a58b2 added c
-  |  (grafted from 8be98ac1a56990c2d9ca6861041b8390af7bd6f3)
-  o  10:ec7eda2313e2 added b
-  |  (grafted from 80e6d2c47cfe5b3185519568327a17a061c7efb6)
-  o  3:9e887f7a939c bar to b
-  |
-  ~
-
-  $ cd ..
-
-Testing the --stop flag of `hg graft` which stops the interrupted graft
-
-  $ hg init stopgraft
-  $ cd stopgraft
-  $ for ch in a b c d; do echo $ch > $ch; hg add $ch; hg ci -Aqm "added "$ch; done;
-
-  $ hg log -G
-  @  changeset:   3:9150fe93bec6
-  |  tag:         tip
-  |  user:        test
-  |  date:        Thu Jan 01 00:00:00 1970 +0000
-  |  summary:     added d
-  |
-  o  changeset:   2:155349b645be
-  |  user:        test
-  |  date:        Thu Jan 01 00:00:00 1970 +0000
-  |  summary:     added c
-  |
-  o  changeset:   1:5f6d8a4bf34a
-  |  user:        test
-  |  date:        Thu Jan 01 00:00:00 1970 +0000
-  |  summary:     added b
-  |
-  o  changeset:   0:9092f1db7931
-     user:        test
-     date:        Thu Jan 01 00:00:00 1970 +0000
-     summary:     added a
-  
-  $ hg up '.^^'
-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
-
-  $ echo foo > d
-  $ hg ci -Aqm "added foo to d"
-
-  $ hg graft --stop
-  abort: no interrupted graft found
-  [255]
-
-  $ hg graft -r 3
-  grafting 3:9150fe93bec6 "added d"
-  merging d
-  warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
-  abort: unresolved conflicts, can't continue
-  (use 'hg resolve' and 'hg graft --continue')
-  [255]
-
-  $ hg graft --stop --continue
-  abort: cannot use '--continue' and '--stop' together
-  [255]
-
-  $ hg graft --stop -U
-  abort: cannot specify any other flag with '--stop'
-  [255]
-  $ hg graft --stop --rev 4
-  abort: cannot specify any other flag with '--stop'
-  [255]
-  $ hg graft --stop --log
-  abort: cannot specify any other flag with '--stop'
-  [255]
-
-  $ hg graft --stop
-  stopped the interrupted graft
-  working directory is now at a0deacecd59d
-
-  $ hg diff
-
-  $ hg log -Gr '.'
-  @  changeset:   4:a0deacecd59d
-  |  tag:         tip
-  ~  parent:      1:5f6d8a4bf34a
-     user:        test
-     date:        Thu Jan 01 00:00:00 1970 +0000
-     summary:     added foo to d
-  
-  $ hg graft -r 2 -r 3
-  grafting 2:155349b645be "added c"
-  grafting 3:9150fe93bec6 "added d"
-  merging d
-  warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
-  abort: unresolved conflicts, can't continue
-  (use 'hg resolve' and 'hg graft --continue')
-  [255]
-
-  $ hg graft --stop
-  stopped the interrupted graft
-  working directory is now at 75b447541a9e
-
-  $ hg diff
-
-  $ hg log -G -T "{rev}:{node|short} {desc}"
-  @  5:75b447541a9e added c
-  |
-  o  4:a0deacecd59d added foo to d
-  |
-  | o  3:9150fe93bec6 added d
-  | |
-  | o  2:155349b645be added c
-  |/
-  o  1:5f6d8a4bf34a added b
-  |
-  o  0:9092f1db7931 added a
-  
-  $ cd ..
-
-Testing the --abort flag for `hg graft` which aborts and rollback to state
-before the graft
-
-  $ hg init abortgraft
-  $ cd abortgraft
-  $ for ch in a b c d; do echo $ch > $ch; hg add $ch; hg ci -Aqm "added "$ch; done;
-
-  $ hg up '.^^'
-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
-
-  $ echo x > x
-  $ hg ci -Aqm "added x"
-  $ hg up '.^'
-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
-  $ echo foo > c
-  $ hg ci -Aqm "added foo to c"
-
-  $ hg log -GT "{rev}:{node|short} {desc}"
-  @  5:36b793615f78 added foo to c
-  |
-  | o  4:863a25e1a9ea added x
-  |/
-  | o  3:9150fe93bec6 added d
-  | |
-  | o  2:155349b645be added c
-  |/
-  o  1:5f6d8a4bf34a added b
-  |
-  o  0:9092f1db7931 added a
-  
-  $ hg up 9150fe93bec6
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-  $ hg abort
-  abort: no interrupted graft to abort (abortflag !)
-  abort: no operation in progress (abortcommand !)
-  [255]
-
-when stripping is required
-  $ hg graft -r 4 -r 5
-  grafting 4:863a25e1a9ea "added x"
-  grafting 5:36b793615f78 "added foo to c" (tip)
-  merging c
-  warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
-  abort: unresolved conflicts, can't continue
-  (use 'hg resolve' and 'hg graft --continue')
-  [255]
-
-  $ hg graft --continue --abort
-  abort: cannot use '--continue' and '--abort' together
-  [255]
-
-  $ hg graft --abort --stop
-  abort: cannot use '--abort' and '--stop' together
-  [255]
-
-  $ hg graft --abort --currentuser
-  abort: cannot specify any other flag with '--abort'
-  [255]
-
-  $ hg graft --abort --edit
-  abort: cannot specify any other flag with '--abort'
-  [255]
-
-#if abortcommand
-when in dry-run mode
-  $ hg abort --dry-run
-  graft in progress, will be aborted
-#endif
-
-  $ hg abort
-  graft aborted
-  working directory is now at 9150fe93bec6
-  $ hg log -GT "{rev}:{node|short} {desc}"
-  o  5:36b793615f78 added foo to c
-  |
-  | o  4:863a25e1a9ea added x
-  |/
-  | @  3:9150fe93bec6 added d
-  | |
-  | o  2:155349b645be added c
-  |/
-  o  1:5f6d8a4bf34a added b
-  |
-  o  0:9092f1db7931 added a
-  
-when stripping is not required
-  $ hg graft -r 5
-  grafting 5:36b793615f78 "added foo to c" (tip)
-  merging c
-  warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
-  abort: unresolved conflicts, can't continue
-  (use 'hg resolve' and 'hg graft --continue')
-  [255]
-
-  $ hg abort
-  graft aborted
-  working directory is now at 9150fe93bec6
-  $ hg log -GT "{rev}:{node|short} {desc}"
-  o  5:36b793615f78 added foo to c
-  |
-  | o  4:863a25e1a9ea added x
-  |/
-  | @  3:9150fe93bec6 added d
-  | |
-  | o  2:155349b645be added c
-  |/
-  o  1:5f6d8a4bf34a added b
-  |
-  o  0:9092f1db7931 added a
-  
-when some of the changesets became public
-
-  $ hg graft -r 4 -r 5
-  grafting 4:863a25e1a9ea "added x"
-  grafting 5:36b793615f78 "added foo to c" (tip)
-  merging c
-  warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
-  abort: unresolved conflicts, can't continue
-  (use 'hg resolve' and 'hg graft --continue')
-  [255]
-
-  $ hg log -GT "{rev}:{node|short} {desc}"
-  @  6:6ec71c037d94 added x
-  |
-  | o  5:36b793615f78 added foo to c
-  | |
-  | | o  4:863a25e1a9ea added x
-  | |/
-  o |  3:9150fe93bec6 added d
-  | |
-  o |  2:155349b645be added c
-  |/
-  o  1:5f6d8a4bf34a added b
-  |
-  o  0:9092f1db7931 added a
-  
-  $ hg phase -r 6 --public
-
-  $ hg abort
-  cannot clean up public changesets 6ec71c037d94
-  graft aborted
-  working directory is now at 6ec71c037d94
-
-when we created new changesets on top of existing one
-
-  $ hg up '.^^'
-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
-  $ echo y > y
-  $ hg ci -Aqm "added y"
-  $ echo z > z
-  $ hg ci -Aqm "added z"
-
-  $ hg up 3
-  1 files updated, 0 files merged, 3 files removed, 0 files unresolved
-  $ hg log -GT "{rev}:{node|short} {desc}"
-  o  8:637f9e9bbfd4 added z
-  |
-  o  7:123221671fd4 added y
-  |
-  | o  6:6ec71c037d94 added x
-  | |
-  | | o  5:36b793615f78 added foo to c
-  | | |
-  | | | o  4:863a25e1a9ea added x
-  | | |/
-  | @ |  3:9150fe93bec6 added d
-  |/ /
-  o /  2:155349b645be added c
-  |/
-  o  1:5f6d8a4bf34a added b
-  |
-  o  0:9092f1db7931 added a
-  
-  $ hg graft -r 8 -r 7 -r 5
-  grafting 8:637f9e9bbfd4 "added z" (tip)
-  grafting 7:123221671fd4 "added y"
-  grafting 5:36b793615f78 "added foo to c"
-  merging c
-  warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
-  abort: unresolved conflicts, can't continue
-  (use 'hg resolve' and 'hg graft --continue')
-  [255]
-
-  $ cd ..
-  $ hg init pullrepo
-  $ cd pullrepo
-  $ cat >> .hg/hgrc <<EOF
-  > [phases]
-  > publish=False
-  > EOF
-  $ hg pull ../abortgraft --config phases.publish=False
-  pulling from ../abortgraft
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 11 changesets with 9 changes to 8 files (+4 heads)
-  new changesets 9092f1db7931:6b98ff0062dd (6 drafts)
-  (run 'hg heads' to see heads, 'hg merge' to merge)
-  $ hg up 9
-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ echo w > w
-  $ hg ci -Aqm "added w" --config phases.publish=False
-
-  $ cd ../abortgraft
-  $ hg pull ../pullrepo
-  pulling from ../pullrepo
-  searching for changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 1 changesets with 1 changes to 1 files (+1 heads)
-  new changesets 311dfc6cf3bf (1 drafts)
-  (run 'hg heads .' to see heads, 'hg merge' to merge)
-
-  $ hg abort
-  new changesets detected on destination branch, can't strip
-  graft aborted
-  working directory is now at 6b98ff0062dd
-
-  $ cd ..
-
-============================
-Testing --no-commit option:|
-============================
-
-  $ hg init nocommit
-  $ cd nocommit
-  $ echo a > a
-  $ hg ci -qAma
-  $ echo b > b
-  $ hg ci -qAmb
-  $ hg up -q 0
-  $ echo c > c
-  $ hg ci -qAmc
-  $ hg log -GT "{rev}:{node|short} {desc}\n"
-  @  2:d36c0562f908 c
-  |
-  | o  1:d2ae7f538514 b
-  |/
-  o  0:cb9a9f314b8b a
-  
-
-Check reporting when --no-commit used with non-applicable options:
-
-  $ hg graft 1 --no-commit -e
-  abort: cannot specify --no-commit and --edit together
-  [255]
-
-  $ hg graft 1 --no-commit --log
-  abort: cannot specify --no-commit and --log together
-  [255]
-
-  $ hg graft 1 --no-commit -D
-  abort: cannot specify --no-commit and --currentdate together
-  [255]
-
-Test --no-commit is working:
-  $ hg graft 1 --no-commit
-  grafting 1:d2ae7f538514 "b"
-
-  $ hg log -GT "{rev}:{node|short} {desc}\n"
-  @  2:d36c0562f908 c
-  |
-  | o  1:d2ae7f538514 b
-  |/
-  o  0:cb9a9f314b8b a
-  
-
-  $ hg diff
-  diff -r d36c0562f908 b
-  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-  +++ b/b	Thu Jan 01 00:00:00 1970 +0000
-  @@ -0,0 +1,1 @@
-  +b
-
-Prepare wrdir to check --no-commit is resepected after --continue:
-
-  $ hg up -qC
-  $ echo A>a
-  $ hg ci -qm "A in file a"
-  $ hg up -q 1
-  $ echo B>a
-  $ hg ci -qm "B in file a"
-  $ hg log -GT "{rev}:{node|short} {desc}\n"
-  @  4:2aa9ad1006ff B in file a
-  |
-  | o  3:09e253b87e17 A in file a
-  | |
-  | o  2:d36c0562f908 c
-  | |
-  o |  1:d2ae7f538514 b
-  |/
-  o  0:cb9a9f314b8b a
-  
-
-  $ hg graft 3 --no-commit
-  grafting 3:09e253b87e17 "A in file a"
-  merging a
-  warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
-  abort: unresolved conflicts, can't continue
-  (use 'hg resolve' and 'hg graft --continue')
-  [255]
-
-Resolve conflict:
-  $ echo A>a
-  $ hg resolve --mark
-  (no more unresolved files)
-  continue: hg graft --continue
-
-  $ hg graft --continue
-  grafting 3:09e253b87e17 "A in file a"
-  $ hg log -GT "{rev}:{node|short} {desc}\n"
-  @  4:2aa9ad1006ff B in file a
-  |
-  | o  3:09e253b87e17 A in file a
-  | |
-  | o  2:d36c0562f908 c
-  | |
-  o |  1:d2ae7f538514 b
-  |/
-  o  0:cb9a9f314b8b a
-  
-  $ hg diff
-  diff -r 2aa9ad1006ff a
-  --- a/a	Thu Jan 01 00:00:00 1970 +0000
-  +++ b/a	Thu Jan 01 00:00:00 1970 +0000
-  @@ -1,1 +1,1 @@
-  -B
-  +A
-
-  $ hg up -qC
-
-Check --no-commit is resepected when passed with --continue:
-
-  $ hg graft 3
-  grafting 3:09e253b87e17 "A in file a"
-  merging a
-  warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
-  abort: unresolved conflicts, can't continue
-  (use 'hg resolve' and 'hg graft --continue')
-  [255]
-
-Resolve conflict:
-  $ echo A>a
-  $ hg resolve --mark
-  (no more unresolved files)
-  continue: hg graft --continue
-
-  $ hg graft --continue --no-commit
-  grafting 3:09e253b87e17 "A in file a"
-  $ hg diff
-  diff -r 2aa9ad1006ff a
-  --- a/a	Thu Jan 01 00:00:00 1970 +0000
-  +++ b/a	Thu Jan 01 00:00:00 1970 +0000
-  @@ -1,1 +1,1 @@
-  -B
-  +A
-
-  $ hg log -GT "{rev}:{node|short} {desc}\n"
-  @  4:2aa9ad1006ff B in file a
-  |
-  | o  3:09e253b87e17 A in file a
-  | |
-  | o  2:d36c0562f908 c
-  | |
-  o |  1:d2ae7f538514 b
-  |/
-  o  0:cb9a9f314b8b a
-  
-  $ hg up -qC
-
-Test --no-commit when graft multiple revisions:
-When there is conflict:
-  $ hg graft -r "2::3" --no-commit
-  grafting 2:d36c0562f908 "c"
-  grafting 3:09e253b87e17 "A in file a"
-  merging a
-  warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
-  abort: unresolved conflicts, can't continue
-  (use 'hg resolve' and 'hg graft --continue')
-  [255]
-
-  $ echo A>a
-  $ hg resolve --mark
-  (no more unresolved files)
-  continue: hg graft --continue
-  $ hg graft --continue
-  grafting 3:09e253b87e17 "A in file a"
-  $ hg diff
-  diff -r 2aa9ad1006ff a
-  --- a/a	Thu Jan 01 00:00:00 1970 +0000
-  +++ b/a	Thu Jan 01 00:00:00 1970 +0000
-  @@ -1,1 +1,1 @@
-  -B
-  +A
-  diff -r 2aa9ad1006ff c
-  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-  +++ b/c	Thu Jan 01 00:00:00 1970 +0000
-  @@ -0,0 +1,1 @@
-  +c
-
-  $ hg log -GT "{rev}:{node|short} {desc}\n"
-  @  4:2aa9ad1006ff B in file a
-  |
-  | o  3:09e253b87e17 A in file a
-  | |
-  | o  2:d36c0562f908 c
-  | |
-  o |  1:d2ae7f538514 b
-  |/
-  o  0:cb9a9f314b8b a
-  
-  $ hg up -qC
-
-When there is no conflict:
-  $ echo d>d
-  $ hg add d -q
-  $ hg ci -qmd
-  $ hg up 3 -q
-  $ hg log -GT "{rev}:{node|short} {desc}\n"
-  o  5:baefa8927fc0 d
-  |
-  o  4:2aa9ad1006ff B in file a
-  |
-  | @  3:09e253b87e17 A in file a
-  | |
-  | o  2:d36c0562f908 c
-  | |
-  o |  1:d2ae7f538514 b
-  |/
-  o  0:cb9a9f314b8b a
-  
-
-  $ hg graft -r 1 -r 5 --no-commit
-  grafting 1:d2ae7f538514 "b"
-  grafting 5:baefa8927fc0 "d" (tip)
-  $ hg diff
-  diff -r 09e253b87e17 b
-  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-  +++ b/b	Thu Jan 01 00:00:00 1970 +0000
-  @@ -0,0 +1,1 @@
-  +b
-  diff -r 09e253b87e17 d
-  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-  +++ b/d	Thu Jan 01 00:00:00 1970 +0000
-  @@ -0,0 +1,1 @@
-  +d
-  $ hg log -GT "{rev}:{node|short} {desc}\n"
-  o  5:baefa8927fc0 d
-  |
-  o  4:2aa9ad1006ff B in file a
-  |
-  | @  3:09e253b87e17 A in file a
-  | |
-  | o  2:d36c0562f908 c
-  | |
-  o |  1:d2ae7f538514 b
-  |/
-  o  0:cb9a9f314b8b a
-  
-  $ cd ..