tests/test-histedit-fold-non-commute.t
changeset 17085 35729bdd59b6
parent 17064 168cc52ad7c2
child 17086 5f2cacb715dc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-histedit-fold-non-commute.t	Sat Jun 30 03:34:44 2012 +0200
@@ -0,0 +1,146 @@
+  $ . "$TESTDIR/histedit-helpers.sh"
+
+  $ cat >> $HGRCPATH <<EOF
+  > [extensions]
+  > graphlog=
+  > histedit=
+  > EOF
+
+  $ EDITED=`pwd`/editedhistory
+  $ cat > $EDITED <<EOF
+  > pick 177f92b77385 c
+  > pick 055a42cdd887 d
+  > fold bfa474341cc9 does not commute with e
+  > pick e860deea161a e
+  > pick 652413bf663e f
+  > EOF
+  $ initrepo ()
+  > {
+  >     hg init $1
+  >     cd $1
+  >     for x in a b c d e f ; do
+  >         echo $x > $x
+  >         hg add $x
+  >         hg ci -m $x
+  >     done
+  >     echo a >> e
+  >     hg ci -m 'does not commute with e'
+  >     cd ..
+  > }
+
+  $ initrepo r
+  $ cd r
+
+log before edit
+  $ hg log --graph
+  @  changeset:   6:bfa474341cc9
+  |  tag:         tip
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     does not commute with e
+  |
+  o  changeset:   5:652413bf663e
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     f
+  |
+  o  changeset:   4:e860deea161a
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     e
+  |
+  o  changeset:   3:055a42cdd887
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     d
+  |
+  o  changeset:   2:177f92b77385
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     c
+  |
+  o  changeset:   1:d2ae7f538514
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     b
+  |
+  o  changeset:   0:cb9a9f314b8b
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     a
+  
+
+edit the history
+  $ HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle
+  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+  1 out of 1 hunks FAILED -- saving rejects to file e.rej
+  abort: Fix up the change and run hg histedit --continue
+
+fix up
+  $ echo a > e
+  $ hg add e
+  $ cat > cat.py <<EOF
+  > import sys
+  > print open(sys.argv[1]).read()
+  > print
+  > print
+  > EOF
+  $ HGEDITOR="python cat.py" hg histedit --continue 2>&1 | fixbundle | grep -v '2 files removed'
+  d
+  ***
+  does not commute with e
+  
+  
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  file e already exists
+  1 out of 1 hunks FAILED -- saving rejects to file e.rej
+  abort: Fix up the change and run hg histedit --continue
+
+just continue this time
+  $ hg histedit --continue 2>&1 | fixbundle
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+log after edit
+  $ hg log --graph
+  @  changeset:   4:f768fd60ca34
+  |  tag:         tip
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     f
+  |
+  o  changeset:   3:671efe372e33
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     d
+  |
+  o  changeset:   2:177f92b77385
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     c
+  |
+  o  changeset:   1:d2ae7f538514
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     b
+  |
+  o  changeset:   0:cb9a9f314b8b
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     a
+  
+
+contents of e
+  $ hg cat e
+  a
+
+manifest
+  $ hg manifest
+  a
+  b
+  c
+  d
+  e
+  f
+
+  $ cd ..