# HG changeset patch # User Mads Kiilerich # Date 2012-06-30 01:34:44 # Node ID 35729bdd59b640eb344e014afd803b3ab4f13a9d # Parent 69dae7982c8595e4a50e8492a3bd192ef1260e3f tests: convert histedit tests to .t Mostly a trivial conversion. diff --git a/tests/histedit-helpers.sh b/tests/histedit-helpers.sh --- a/tests/histedit-helpers.sh +++ b/tests/histedit-helpers.sh @@ -1,5 +1,3 @@ -#!/bin/sh - fixbundle() { grep -v 'saving bundle' | grep -v 'saved backup' | \ grep -v added | grep -v adding | \ diff --git a/tests/test-histedit-commute.out b/tests/test-histedit-commute.out deleted file mode 100644 --- a/tests/test-histedit-commute.out +++ /dev/null @@ -1,277 +0,0 @@ -% log before edit -@ changeset: 5:652413bf663e -| tag: tip -| 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 - -% show the edit commands offered -pick 177f92b77385 2 c -pick 055a42cdd887 3 d -pick e860deea161a 4 e -pick 652413bf663e 5 f - -# Edit history between 177f92b77385 and 652413bf663e -# -# Commands: -# p, pick = use commit -# e, edit = use commit, but stop for amending -# f, fold = use commit, but fold into previous commit (combines N and N-1) -# d, drop = remove commit from history -# m, mess = edit message without changing commit content -# -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -% edit the history -0 files updated, 0 files merged, 3 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -% rules should end up in .hg/histedit-last-edit.txt: -pick 177f92b77385 c -pick e860deea161a e -pick 652413bf663e f -pick 055a42cdd887 d -**** end of rules file **** -% log after edit -@ changeset: 5:853c68da763f -| tag: tip -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: d -| -o changeset: 4:26f6a030ae82 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: f -| -o changeset: 3:b069cc29fb22 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: e -| -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 - -% put things back -0 files updated, 0 files merged, 3 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -@ changeset: 5:652413bf663e -| tag: tip -| 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 - -% slightly different this time -0 files updated, 0 files merged, 4 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -@ changeset: 5:99a62755c625 -| tag: tip -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: c -| -o changeset: 4:7c6fdd608667 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: e -| -o changeset: 3:c4f52e213402 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: f -| -o changeset: 2:bfe4a5a76b37 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: d -| -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 - -% keep prevents stripping dead revs -0 files updated, 0 files merged, 2 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -@ changeset: 7:99e266581538 -| tag: tip -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: e -| -o changeset: 6:5ad36efb0653 -| parent: 3:c4f52e213402 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: c -| -| o changeset: 5:99a62755c625 -| | user: test -| | date: Thu Jan 01 00:00:00 1970 +0000 -| | summary: c -| | -| o changeset: 4:7c6fdd608667 -|/ user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: e -| -o changeset: 3:c4f52e213402 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: f -| -o changeset: 2:bfe4a5a76b37 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: d -| -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 - -% try with --rev -abort: may not use changesets other than the ones listed -@ changeset: 7:99e266581538 -| tag: tip -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: e -| -o changeset: 6:5ad36efb0653 -| parent: 3:c4f52e213402 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: c -| -| o changeset: 5:99a62755c625 -| | user: test -| | date: Thu Jan 01 00:00:00 1970 +0000 -| | summary: c -| | -| o changeset: 4:7c6fdd608667 -|/ user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: e -| -o changeset: 3:c4f52e213402 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: f -| -o changeset: 2:bfe4a5a76b37 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: d -| -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 - -% should also work if a commit message is missing -adding changesets -adding manifests -adding file changes -added 3 changesets with 3 changes to 1 files -(run 'hg update' to get a working copy) -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -@ changeset: 2:bd22688093b3 -| tag: tip -| user: Robert Altman -| date: Mon Nov 28 16:40:04 2011 +0000 -| summary: Update file. -| -o changeset: 1:3b3e956f9171 -| user: Robert Altman -| date: Mon Nov 28 16:37:57 2011 +0000 -| -o changeset: 0:141947992243 - user: Robert Altman - date: Mon Nov 28 16:35:28 2011 +0000 - summary: Checked in text file - -0 files updated, 0 files merged, 0 files removed, 0 files unresolved diff --git a/tests/test-histedit-commute b/tests/test-histedit-commute.t old mode 100755 new mode 100644 rename from tests/test-histedit-commute rename to tests/test-histedit-commute.t --- a/tests/test-histedit-commute +++ b/tests/test-histedit-commute.t @@ -1,97 +1,359 @@ -#!/bin/sh + $ . "$TESTDIR/histedit-helpers.sh" + + $ cat >> $HGRCPATH < [extensions] + > graphlog= + > histedit= + > EOF -. "$TESTDIR/histedit-helpers.sh" + $ EDITED=`pwd`/editedhistory + $ cat > $EDITED < pick 177f92b77385 c + > pick e860deea161a e + > pick 652413bf663e f + > pick 055a42cdd887 d + > EOF + $ initrepo () + > { + > hg init r + > cd r + > for x in a b c d e f ; do + > echo $x > $x + > hg add $x + > hg ci -m $x + > done + > } + + $ initrepo -cat >> $HGRCPATH <&1 | fixbundle + 0 files updated, 0 files merged, 3 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved -EDITED=`pwd`/editedhistory -cat > $EDITED < $x - hg add $x - hg ci -m $x - done -} +rules should end up in .hg/histedit-last-edit.txt: + $ cat .hg/histedit-last-edit.txt + pick 177f92b77385 c + pick e860deea161a e + pick 652413bf663e f + pick 055a42cdd887 d + +log after edit + $ hg log --graph + @ changeset: 5:853c68da763f + | tag: tip + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: d + | + o changeset: 4:26f6a030ae82 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: f + | + o changeset: 3:b069cc29fb22 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: e + | + 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 + + +put things back -initrepo - -echo % log before edit -hg log --graph - -echo % show the edit commands offered -HGEDITOR=cat hg histedit 177f92b77385 + $ cat > $EDITED < pick 177f92b77385 c + > pick 853c68da763f d + > pick b069cc29fb22 e + > pick 26f6a030ae82 f + > EOF + $ HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle + 0 files updated, 0 files merged, 3 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved -echo % edit the history -HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle + $ hg log --graph + @ changeset: 5:652413bf663e + | tag: tip + | 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 + -echo % rules should end up in .hg/histedit-last-edit.txt: -cat .hg/histedit-last-edit.txt -echo '**** end of rules file ****' - -echo % log after edit -hg log --graph - -echo % put things back +slightly different this time -cat > $EDITED <&1 | fixbundle - -hg log --graph - - -echo % slightly different this time - -cat > $EDITED <&1 | fixbundle -hg log --graph - + $ cat > $EDITED < pick 055a42cdd887 d + > pick 652413bf663e f + > pick e860deea161a e + > pick 177f92b77385 c + > EOF + $ HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle + 0 files updated, 0 files merged, 4 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg log --graph + @ changeset: 5:99a62755c625 + | tag: tip + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: c + | + o changeset: 4:7c6fdd608667 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: e + | + o changeset: 3:c4f52e213402 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: f + | + o changeset: 2:bfe4a5a76b37 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: d + | + 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 + -echo % keep prevents stripping dead revs -cat > $EDITED <&1 | fixbundle -hg log --graph +keep prevents stripping dead revs + $ cat > $EDITED < pick bfe4a5a76b37 d + > pick c4f52e213402 f + > pick 99a62755c625 c + > pick 7c6fdd608667 e + > EOF + $ HGEDITOR="cat $EDITED > " hg histedit bfe4a5a76b37 --keep 2>&1 | fixbundle + 0 files updated, 0 files merged, 2 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg log --graph + > cat > $EDITED < pick 7c6fdd608667 e + > pick 99a62755c625 c + > EOF + @ changeset: 7:99e266581538 + | tag: tip + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: e + | + o changeset: 6:5ad36efb0653 + | parent: 3:c4f52e213402 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: c + | + | o changeset: 5:99a62755c625 + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | summary: c + | | + | o changeset: 4:7c6fdd608667 + |/ user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: e + | + o changeset: 3:c4f52e213402 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: f + | + o changeset: 2:bfe4a5a76b37 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: d + | + 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 + -echo '% try with --rev' -cat > $EDITED <&1 | fixbundle -hg log --graph +try with --rev + $ hg histedit --commands "$EDITED" --rev -2 2>&1 | fixbundle + abort: may not use changesets other than the ones listed + $ hg log --graph + @ changeset: 7:99e266581538 + | tag: tip + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: e + | + o changeset: 6:5ad36efb0653 + | parent: 3:c4f52e213402 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: c + | + | o changeset: 5:99a62755c625 + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | summary: c + | | + | o changeset: 4:7c6fdd608667 + |/ user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: e + | + o changeset: 3:c4f52e213402 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: f + | + o changeset: 2:bfe4a5a76b37 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: d + | + 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 + -echo % should also work if a commit message is missing -BUNDLE="$TESTDIR/missing-comment.hg" -hg init missing -cd missing -hg unbundle $BUNDLE -hg co tip -hg log --graph -hg histedit 0 +should also work if a commit message is missing + $ BUNDLE="$TESTDIR/missing-comment.hg" + $ hg init missing + $ cd missing + $ hg unbundle $BUNDLE + adding changesets + adding manifests + adding file changes + added 3 changesets with 3 changes to 1 files + (run 'hg update' to get a working copy) + $ hg co tip + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg log --graph + @ changeset: 2:bd22688093b3 + | tag: tip + | user: Robert Altman + | date: Mon Nov 28 16:40:04 2011 +0000 + | summary: Update file. + | + o changeset: 1:3b3e956f9171 + | user: Robert Altman + | date: Mon Nov 28 16:37:57 2011 +0000 + | + o changeset: 0:141947992243 + user: Robert Altman + date: Mon Nov 28 16:35:28 2011 +0000 + summary: Checked in text file + + $ hg histedit 0 + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cd .. diff --git a/tests/test-histedit-drop.out b/tests/test-histedit-drop.out deleted file mode 100644 --- a/tests/test-histedit-drop.out +++ /dev/null @@ -1,71 +0,0 @@ -% log before edit -@ changeset: 5:652413bf663e -| tag: tip -| 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 -0 files updated, 0 files merged, 4 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -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 -@ changeset: 4:708943196e52 -| tag: tip -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: d -| -o changeset: 3:75cbdffecadb -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: f -| -o changeset: 2:493dc0964412 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: e -| -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 - -% manifest after edit -a -b -d -e -f -% EOF diff --git a/tests/test-histedit-drop b/tests/test-histedit-drop.t old mode 100755 new mode 100644 rename from tests/test-histedit-drop rename to tests/test-histedit-drop.t --- a/tests/test-histedit-drop +++ b/tests/test-histedit-drop.t @@ -1,43 +1,107 @@ -#!/bin/sh + $ . "$TESTDIR/histedit-helpers.sh" -. "$TESTDIR/histedit-helpers.sh" + $ cat >> $HGRCPATH < [extensions] + > graphlog= + > histedit= + > EOF -cat >> $HGRCPATH < $EDITED < drop 177f92b77385 c + > pick e860deea161a e + > pick 652413bf663e f + > pick 055a42cdd887 d + > EOF + $ initrepo () + > { + > hg init r + > cd r + > for x in a b c d e f ; do + > echo $x > $x + > hg add $x + > hg ci -m $x + > done + > } + + $ initrepo -EDITED=`pwd`/editedhistory -cat > $EDITED < $x - hg add $x - hg ci -m $x - done -} +log before edit + $ hg log --graph + @ changeset: 5:652413bf663e + | tag: tip + | 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 + -initrepo - -echo % log before edit -hg log --graph - -echo % edit the history -HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle +edit the history + $ HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle + 0 files updated, 0 files merged, 4 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved -echo % log after edit -hg log --graph +log after edit + $ hg log --graph + @ changeset: 4:708943196e52 + | tag: tip + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: d + | + o changeset: 3:75cbdffecadb + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: f + | + o changeset: 2:493dc0964412 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: e + | + 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 + -echo % manifest after edit -hg manifest +manifest after edit + $ hg manifest + a + b + d + e + f -echo % EOF + $ cd .. diff --git a/tests/test-histedit-edit.out b/tests/test-histedit-edit.out deleted file mode 100644 --- a/tests/test-histedit-edit.out +++ /dev/null @@ -1,111 +0,0 @@ -% log before edit -@ changeset: 5:652413bf663e -| tag: tip -| 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 -0 files updated, 0 files merged, 2 files removed, 0 files unresolved -abort: Make changes as needed, you may commit or record as needed now. -When you are finished, run hg histedit --continue to resume. -% commit, then edit the revision -created new head -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -@ changeset: 6:bf757c081cd0 -| tag: tip -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: f -| -o changeset: 5:d6b15fed32d4 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: foobaz -| -o changeset: 4:1a60820cd1f6 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: wat -| -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 - -% contents of e: -a -0 files updated, 0 files merged, 1 files removed, 0 files unresolved -abort: Make changes as needed, you may commit or record as needed now. -When you are finished, run hg histedit --continue to resume. -A f -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -% log after edit -changeset: 6:bf757c081cd0 -tag: tip -user: test -date: Thu Jan 01 00:00:00 1970 +0000 -summary: f - -% say we'll change the message, but don't. -0 files updated, 0 files merged, 1 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -changeset: 6:bf757c081cd0 -tag: tip -user: test -date: Thu Jan 01 00:00:00 1970 +0000 -summary: f - -% modify the message -0 files updated, 0 files merged, 1 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -changeset: 6:0b16746f8e89 -tag: tip -user: test -date: Thu Jan 01 00:00:00 1970 +0000 -summary: mess bf757c081cd0 f - -% rollback should not work after a histedit -no rollback information available -% EOF diff --git a/tests/test-histedit-edit b/tests/test-histedit-edit.t old mode 100755 new mode 100644 rename from tests/test-histedit-edit rename to tests/test-histedit-edit.t --- a/tests/test-histedit-edit +++ b/tests/test-histedit-edit.t @@ -1,80 +1,180 @@ -#!/bin/sh + $ . "$TESTDIR/histedit-helpers.sh" -. "$TESTDIR/histedit-helpers.sh" + $ cat >> $HGRCPATH < [extensions] + > graphlog= + > histedit= + > EOF -cat >> $HGRCPATH < $EDITED < pick 177f92b77385 c + > pick 055a42cdd887 d + > edit e860deea161a e + > pick 652413bf663e f + > EOF + $ initrepo () + > { + > hg init r + > cd r + > for x in a b c d e f ; do + > echo $x > $x + > hg add $x + > hg ci -m $x + > done + > } + + $ initrepo -EDITED=`pwd`/editedhistory -cat > $EDITED < $x - hg add $x - hg ci -m $x - done -} +log before edit + $ hg log --graph + @ changeset: 5:652413bf663e + | tag: tip + | 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 + -initrepo +edit the history + $ HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle + 0 files updated, 0 files merged, 2 files removed, 0 files unresolved + abort: Make changes as needed, you may commit or record as needed now. + When you are finished, run hg histedit --continue to resume. -echo % log before edit -hg log --graph - -echo % edit the history -HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle +commit, then edit the revision + $ hg ci -m 'wat' + created new head + $ echo a > e + $ HGEDITOR='echo "foobaz" > ' 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 -echo % commit, then edit the revision -hg ci -m 'wat' -echo a > e -HGEDITOR='echo "foobaz" > ' hg histedit --continue 2>&1 | fixbundle - -hg log --graph - -echo '% contents of e:' -hg cat e + $ hg log --graph + @ changeset: 6:bf757c081cd0 + | tag: tip + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: f + | + o changeset: 5:d6b15fed32d4 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: foobaz + | + o changeset: 4:1a60820cd1f6 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: wat + | + 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 + -cat > $EDITED <&1 | fixbundle -hg status -HGEDITOR='true' hg histedit --continue -hg status - -echo % log after edit -hg log --limit 1 + $ hg cat e + a -echo "% say we'll change the message, but don't." -cat > ../edit.sh < tmp -mv tmp \$1 -EOF -chmod +x ../edit.sh -HGEDITOR="../edit.sh" hg histedit tip 2>&1 | fixbundle -hg status -hg log --limit 1 + $ cat > $EDITED < edit bf757c081cd0 f + > EOF + $ HGEDITOR="cat $EDITED > " hg histedit tip 2>&1 | fixbundle + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + abort: Make changes as needed, you may commit or record as needed now. + When you are finished, run hg histedit --continue to resume. + $ hg status + A f + $ HGEDITOR='true' hg histedit --continue + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg status + +log after edit + $ hg log --limit 1 + changeset: 6:bf757c081cd0 + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: f + -echo % modify the message -cat > $EDITED <&1 | fixbundle -hg status -hg log --limit 1 +say we'll change the message, but don't. + $ cat > ../edit.sh < #!/bin/sh + > cat \$1 | sed s/pick/mess/ > tmp + > mv tmp \$1 + > EOF + $ chmod +x ../edit.sh + $ HGEDITOR="../edit.sh" hg histedit tip 2>&1 | fixbundle + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg status + $ hg log --limit 1 + changeset: 6:bf757c081cd0 + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: f + -echo % rollback should not work after a histedit -hg rollback +modify the message + $ cat > $EDITED < mess bf757c081cd0 f + > EOF + $ HGEDITOR="cat $EDITED > " hg histedit tip 2>&1 | fixbundle + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg status + $ hg log --limit 1 + changeset: 6:0b16746f8e89 + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: mess bf757c081cd0 f + -echo % EOF +rollback should not work after a histedit + $ hg rollback + no rollback information available + [1] + + $ cd .. diff --git a/tests/test-histedit-fold-non-commute.out b/tests/test-histedit-fold-non-commute.out deleted file mode 100644 --- a/tests/test-histedit-fold-non-commute.out +++ /dev/null @@ -1,92 +0,0 @@ -% log before edit -@ 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 -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 -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 -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 -@ 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 -a -% manifest -a -b -c -d -e -f -% EOF diff --git a/tests/test-histedit-fold-non-commute b/tests/test-histedit-fold-non-commute.t old mode 100755 new mode 100644 rename from tests/test-histedit-fold-non-commute rename to tests/test-histedit-fold-non-commute.t --- a/tests/test-histedit-fold-non-commute +++ b/tests/test-histedit-fold-non-commute.t @@ -1,65 +1,146 @@ -#!/bin/sh + $ . "$TESTDIR/histedit-helpers.sh" -. "$TESTDIR/histedit-helpers.sh" + $ cat >> $HGRCPATH < [extensions] + > graphlog= + > histedit= + > EOF -cat >> $HGRCPATH < $EDITED < 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 -EDITED=`pwd`/editedhistory -cat > $EDITED < $x - hg add $x - hg ci -m $x - done - echo a >> e - hg ci -m 'does not commute with e' -} - -initrepo +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 + -echo % log before edit -hg log --graph +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 -echo % edit the history -HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle +fix up + $ echo a > e + $ hg add e + $ cat > cat.py < 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 -echo % fix up -echo a > e -hg add e -cat > cat.py <&1 | fixbundle | grep -v '2 files removed' +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 + -echo -echo % just continue this time -hg histedit --continue 2>&1 | fixbundle - - -echo % log after edit -hg log --graph +contents of e + $ hg cat e + a -echo % contents of e -hg cat e +manifest + $ hg manifest + a + b + c + d + e + f -echo % manifest -hg manifest - -echo % EOF + $ cd .. diff --git a/tests/test-histedit-fold.out b/tests/test-histedit-fold.out deleted file mode 100644 --- a/tests/test-histedit-fold.out +++ /dev/null @@ -1,74 +0,0 @@ -% log before edit -@ changeset: 5:652413bf663e -| tag: tip -| 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 -0 files updated, 0 files merged, 4 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -0 files updated, 0 files merged, 2 files removed, 0 files unresolved -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 -@ changeset: 4:82b0c1ff1777 -| tag: tip -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: d -| -o changeset: 3:150aafb44a91 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: pick e860deea161a e -| -o changeset: 2:493dc0964412 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: e -| -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 - -% post-fold manifest -a -b -c -d -e -f -% EOF diff --git a/tests/test-histedit-fold b/tests/test-histedit-fold.t old mode 100755 new mode 100644 rename from tests/test-histedit-fold rename to tests/test-histedit-fold.t --- a/tests/test-histedit-fold +++ b/tests/test-histedit-fold.t @@ -1,43 +1,110 @@ -#!/bin/sh + $ . "$TESTDIR/histedit-helpers.sh" -. "$TESTDIR/histedit-helpers.sh" + $ cat >> $HGRCPATH < [extensions] + > graphlog= + > histedit= + > EOF -cat >> $HGRCPATH < $EDITED < pick e860deea161a e + > pick 652413bf663e f + > fold 177f92b77385 c + > pick 055a42cdd887 d + > EOF + $ initrepo () + > { + > hg init r + > cd r + > for x in a b c d e f ; do + > echo $x > $x + > hg add $x + > hg ci -m $x + > done + > } + + $ initrepo -EDITED=`pwd`/editedhistory -cat > $EDITED < $x - hg add $x - hg ci -m $x - done -} +log before edit + $ hg log --graph + @ changeset: 5:652413bf663e + | tag: tip + | 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 + -initrepo - -echo % log before edit -hg log --graph - -echo % edit the history -HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle +edit the history + $ HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle + 0 files updated, 0 files merged, 4 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 2 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved -echo % log after edit -hg log --graph +log after edit + $ hg log --graph + @ changeset: 4:82b0c1ff1777 + | tag: tip + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: d + | + o changeset: 3:150aafb44a91 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: pick e860deea161a e + | + o changeset: 2:493dc0964412 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: e + | + 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 + -echo % post-fold manifest -hg manifest +post-fold manifest + $ hg manifest + a + b + c + d + e + f -echo % EOF + $ cd .. diff --git a/tests/test-histedit-no-change.out b/tests/test-histedit-no-change.out deleted file mode 100644 --- a/tests/test-histedit-no-change.out +++ /dev/null @@ -1,94 +0,0 @@ -% test editing with no change ------------------------------ -% log before editing -@ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f" -| -o 4 e860deea161a2f77de56603b340ebbb4536308ae "e" -| -o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d" -| -o 2 177f92b773850b59254aa5e923436f921b55483b "c" -| -o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b" -| -o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a" - -% start editing the history (not changing anything) -| pick 055a42cdd887 3 d -| edit e860deea161a 4 e -| pick 652413bf663e 5 f -0 files updated, 0 files merged, 2 files removed, 0 files unresolved -abort: Make changes as needed, you may commit or record as needed now. -When you are finished, run hg histedit --continue to resume. -% finalize changeset editing (leaving commit message unaltered) -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% check state of working copy -652413bf663e tip -% log after history editing -@ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f" -| -o 4 e860deea161a2f77de56603b340ebbb4536308ae "e" -| -o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d" -| -o 2 177f92b773850b59254aa5e923436f921b55483b "c" -| -o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b" -| -o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a" - -% test editing with no change, then abort ------------------------------------------ -% log before editing -@ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f" -| -o 4 e860deea161a2f77de56603b340ebbb4536308ae "e" -| -o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d" -| -o 2 177f92b773850b59254aa5e923436f921b55483b "c" -| -o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b" -| -o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a" - -% start editing the history (not changing anything) -| edit 055a42cdd887 3 d -| edit e860deea161a 4 e -| pick 652413bf663e 5 f -0 files updated, 0 files merged, 3 files removed, 0 files unresolved -abort: Make changes as needed, you may commit or record as needed now. -When you are finished, run hg histedit --continue to resume. -% finalize changeset editing (leaving commit message unaltered) -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -abort: Make changes as needed, you may commit or record as needed now. -When you are finished, run hg histedit --continue to resume. -% log after first edit -o 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f" -| -o 4 e860deea161a2f77de56603b340ebbb4536308ae "e" -| -@ 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d" -| -o 2 177f92b773850b59254aa5e923436f921b55483b "c" -| -o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b" -| -o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a" - -% abort editing session -2 files updated, 0 files merged, 0 files removed, 0 files unresolved -% log after abort -@ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f" -| -o 4 e860deea161a2f77de56603b340ebbb4536308ae "e" -| -o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d" -| -o 2 177f92b773850b59254aa5e923436f921b55483b "c" -| -o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b" -| -o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a" - -% EOF diff --git a/tests/test-histedit-no-change b/tests/test-histedit-no-change.t old mode 100755 new mode 100644 rename from tests/test-histedit-no-change rename to tests/test-histedit-no-change.t --- a/tests/test-histedit-no-change +++ b/tests/test-histedit-no-change.t @@ -1,110 +1,189 @@ -#!/bin/sh +test for old histedit issue #6: +editing a changeset without any actual change would corrupt the repository -# test for issue #6: -# editing a changeset without any actual change would corrupt the repository - -. "$TESTDIR/histedit-helpers.sh" + $ . "$TESTDIR/histedit-helpers.sh" -cat >> $HGRCPATH <> $HGRCPATH < [extensions] + > graphlog= + > histedit= + > EOF - if [ -n "${comment}" ]; then - echo % ${comment} - echo % ${comment} | sed 's:.:-:g' - fi - - hg init ${dir} - cd ${dir} - for x in a b c d e f ; do - echo $x > $x - hg add $x - hg ci -m $x - done -} - -geneditor () -{ - # generate an editor script for selecting changesets to be edited - - choice=$1 # changesets that should be edited (using sed line ranges) - - cat < { + > dir="$1" + > comment="$2" + > if [ -n "${comment}" ]; then + > echo % ${comment} + > echo % ${comment} | sed 's:.:-:g' + > fi + > hg init ${dir} + > cd ${dir} + > for x in a b c d e f ; do + > echo $x > $x + > hg add $x + > hg ci -m $x + > done + > cd .. + > } - # editing the rules, replacing 'pick' with 'edit' for the chosen lines - sed '${choice}s:^pick:edit:' \$1 > \${1}.tmp - mv \${1}.tmp \$1 - - # displaying the resulting rules, minus comments and empty lines - sed '/^#/d;/^$/d;s:^:| :' \$1 >&2 -EOF -} - -startediting () -{ - # begin an editing session - - choice="$1" # changesets that should be edited - number="$2" # number of changesets considered (from tip) - comment="$3" - - geneditor "${choice}" > edit.sh - chmod +x edit.sh + $ geneditor () + > { + > # generate an editor script for selecting changesets to be edited + > choice=$1 # changesets that should be edited (using sed line ranges) + > cat < #!/bin/sh + > # editing the rules, replacing 'pick' with 'edit' for the chosen lines + > sed '${choice}s:^pick:edit:' \$1 > \${1}.tmp + > mv \${1}.tmp \$1 + > # displaying the resulting rules, minus comments and empty lines + > sed '/^#/d;/^$/d;s:^:| :' \$1 >&2 + > EOF + > } - echo % start editing the history ${comment} - HGEDITOR=./edit.sh hg histedit -- -${number} 2>&1 | fixbundle -} - -continueediting () -{ - # continue an edit already in progress - - editor="$1" # message editor when finalizing editing - comment="$2" + $ startediting () + > { + > # begin an editing session + > choice="$1" # changesets that should be edited + > number="$2" # number of changesets considered (from tip) + > comment="$3" + > geneditor "${choice}" > edit.sh + > chmod +x edit.sh + > echo % start editing the history ${comment} + > HGEDITOR=./edit.sh hg histedit -- -${number} 2>&1 | fixbundle + > } - echo % finalize changeset editing ${comment} - HGEDITOR=${editor} hg histedit --continue 2>&1 | fixbundle -} + $ continueediting () + > { + > # continue an edit already in progress + > editor="$1" # message editor when finalizing editing + > comment="$2" + > echo % finalize changeset editing ${comment} + > HGEDITOR=${editor} hg histedit --continue 2>&1 | fixbundle + > } -graphlog () -{ - comment="${1:-log}" - - echo % "${comment}" - hg glog --template '{rev} {node} \"{desc|firstline}\"\n' -} + $ graphlog () + > { + > comment="${1:-log}" + > echo % "${comment}" + > hg glog --template '{rev} {node} \"{desc|firstline}\"\n' + > } - -initrepo r1 "test editing with no change" -graphlog "log before editing" -startediting 2 3 "(not changing anything)" # edit the 2nd of 3 changesets -continueediting true "(leaving commit message unaltered)" + $ initrepo r1 "test editing with no change" + % test editing with no change + ----------------------------- + $ cd r1 + $ graphlog "log before editing" + % log before editing + @ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f" + | + o 4 e860deea161a2f77de56603b340ebbb4536308ae "e" + | + o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d" + | + o 2 177f92b773850b59254aa5e923436f921b55483b "c" + | + o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b" + | + o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a" + + $ startediting 2 3 "(not changing anything)" # edit the 2nd of 3 changesets + % start editing the history (not changing anything) + | pick 055a42cdd887 3 d + | edit e860deea161a 4 e + | pick 652413bf663e 5 f + 0 files updated, 0 files merged, 2 files removed, 0 files unresolved + abort: Make changes as needed, you may commit or record as needed now. + When you are finished, run hg histedit --continue to resume. + $ continueediting true "(leaving commit message unaltered)" + % finalize changeset editing (leaving commit message unaltered) + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved -echo "% check state of working copy" -hg id +check state of working copy + $ hg id + 652413bf663e tip -graphlog "log after history editing" + $ graphlog "log after history editing" + % log after history editing + @ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f" + | + o 4 e860deea161a2f77de56603b340ebbb4536308ae "e" + | + o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d" + | + o 2 177f92b773850b59254aa5e923436f921b55483b "c" + | + o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b" + | + o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a" + + $ cd .. -cd .. -initrepo r2 "test editing with no change, then abort" -graphlog "log before editing" -startediting 1,2 3 "(not changing anything)" # edit the 1st two of 3 changesets -continueediting true "(leaving commit message unaltered)" -graphlog "log after first edit" + $ initrepo r2 "test editing with no change, then abort" + % test editing with no change, then abort + ----------------------------------------- + $ cd r2 + $ graphlog "log before editing" + % log before editing + @ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f" + | + o 4 e860deea161a2f77de56603b340ebbb4536308ae "e" + | + o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d" + | + o 2 177f92b773850b59254aa5e923436f921b55483b "c" + | + o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b" + | + o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a" + + $ startediting 1,2 3 "(not changing anything)" # edit the 1st two of 3 changesets + % start editing the history (not changing anything) + | edit 055a42cdd887 3 d + | edit e860deea161a 4 e + | pick 652413bf663e 5 f + 0 files updated, 0 files merged, 3 files removed, 0 files unresolved + abort: Make changes as needed, you may commit or record as needed now. + When you are finished, run hg histedit --continue to resume. + $ continueediting true "(leaving commit message unaltered)" + % finalize changeset editing (leaving commit message unaltered) + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + abort: Make changes as needed, you may commit or record as needed now. + When you are finished, run hg histedit --continue to resume. + $ graphlog "log after first edit" + % log after first edit + o 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f" + | + o 4 e860deea161a2f77de56603b340ebbb4536308ae "e" + | + @ 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d" + | + o 2 177f92b773850b59254aa5e923436f921b55483b "c" + | + o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b" + | + o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a" + -echo % abort editing session -hg histedit --abort 2>&1 | fixbundle +abort editing session + $ hg histedit --abort 2>&1 | fixbundle + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved -graphlog "log after abort" + $ graphlog "log after abort" + % log after abort + @ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f" + | + o 4 e860deea161a2f77de56603b340ebbb4536308ae "e" + | + o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d" + | + o 2 177f92b773850b59254aa5e923436f921b55483b "c" + | + o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b" + | + o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a" + -echo % EOF + $ cd .. diff --git a/tests/test-histedit-non-commute-abort.out b/tests/test-histedit-non-commute-abort.out deleted file mode 100644 --- a/tests/test-histedit-non-commute-abort.out +++ /dev/null @@ -1,86 +0,0 @@ -% log before edit -@ 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 -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 (pre abort) -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 -% abort the edit -2 files updated, 0 files merged, 0 files removed, 0 files unresolved -% log after abort -@ 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 - -% EOF diff --git a/tests/test-histedit-non-commute-abort b/tests/test-histedit-non-commute-abort.t old mode 100755 new mode 100644 rename from tests/test-histedit-non-commute-abort rename to tests/test-histedit-non-commute-abort.t --- a/tests/test-histedit-non-commute-abort +++ b/tests/test-histedit-non-commute-abort.t @@ -1,50 +1,131 @@ -#!/bin/sh + $ . "$TESTDIR/histedit-helpers.sh" -. "$TESTDIR/histedit-helpers.sh" + $ cat >> $HGRCPATH < [extensions] + > graphlog= + > histedit= + > EOF -cat >> $HGRCPATH < $EDITED < pick 177f92b77385 c + > pick 055a42cdd887 d + > pick bfa474341cc9 does not commute with e + > pick e860deea161a e + > pick 652413bf663e f + > EOF + $ initrepo () + > { + > hg init r + > cd r + > 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 + $ cd r -EDITED=`pwd`/editedhistory -cat > $EDITED < $x - hg add $x - hg ci -m $x - done - echo a >> e - hg ci -m 'does not commute with e' -} +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 -initrepo +fix up (pre abort) + $ echo a > e + $ hg add e + $ hg histedit --continue 2>&1 | fixbundle + 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 -echo % log before edit -hg log --graph - -echo % edit the history -HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle +abort the edit + $ hg histedit --abort 2>&1 | fixbundle + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved -echo '% fix up (pre abort)' -echo a > e -hg add e -hg histedit --continue 2>&1 | fixbundle +log after abort + $ 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 + -echo % abort the edit -hg histedit --abort 2>&1 | fixbundle - -echo % log after abort -hg log --graph -echo % EOF + $ cd .. diff --git a/tests/test-histedit-non-commute.out b/tests/test-histedit-non-commute.out deleted file mode 100644 --- a/tests/test-histedit-non-commute.out +++ /dev/null @@ -1,173 +0,0 @@ -% log before edit -@ 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 -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 -% abort the edit -2 files updated, 0 files merged, 0 files removed, 0 files unresolved - - -% second edit set -@ 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 -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 -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 -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 -@ changeset: 5:9ab84894b459 -| tag: tip -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: f -| -o changeset: 4:1fff3ae8199d -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: does not commute with 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 - -% start over -% edit the history, this time with a fold action -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 - -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 -% second edit also fails, but just continue -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -% post message fix -@ changeset: 5:6459970fb49b -| tag: tip -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: f -| -o changeset: 4:556f27c874b0 -| user: test -| date: Thu Jan 01 00:00:00 1970 +0000 -| summary: pick 177f92b77385 c -| -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 - -% EOF diff --git a/tests/test-histedit-non-commute b/tests/test-histedit-non-commute.t old mode 100755 new mode 100644 rename from tests/test-histedit-non-commute rename to tests/test-histedit-non-commute.t --- a/tests/test-histedit-non-commute +++ b/tests/test-histedit-non-commute.t @@ -1,90 +1,244 @@ -#!/bin/sh + $ . "$TESTDIR/histedit-helpers.sh" -. "$TESTDIR/histedit-helpers.sh" + $ cat >> $HGRCPATH < [extensions] + > graphlog= + > histedit= + > EOF -cat >> $HGRCPATH < $EDITED < pick 177f92b77385 c + > pick 055a42cdd887 d + > pick 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 r1 + $ cd r1 -EDITED=`pwd`/editedhistory -cat > $EDITED < $x - hg add $x - hg ci -m $x - done - echo a >> e - hg ci -m 'does not commute with e' -} +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 + -initrepo - -echo % log before edit -hg log --graph +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 -echo % edit the history -HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle +abort the edit + $ hg histedit --abort 2>&1 | fixbundle + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved -echo % abort the edit -hg histedit --abort 2>&1 | fixbundle + +second edit set -echo -echo -echo % second edit set - -hg log --graph - -echo % edit the history -HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle + $ 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 + -echo % fix up -echo a > e -hg add e -hg histedit --continue 2>&1 | fixbundle +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 -echo -echo % just continue this time -hg histedit --continue 2>&1 | fixbundle +fix up + $ echo a > e + $ hg add e + $ hg histedit --continue 2>&1 | fixbundle + 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 -echo % log after edit -hg log --graph - -echo % start over +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 -cd .. -rm -r r -initrepo -cat > $EDITED < $EDITED < pick 177f92b77385 c + > pick 055a42cdd887 d + > mess bfa474341cc9 does not commute with e + > pick e860deea161a e + > pick 652413bf663e f + > EOF -echo % edit the history, this time with a fold action -HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle +edit the history, this time with a fold action + $ 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 + + $ echo a > e + $ hg add e + $ HGEDITOR="cat $EDITED > " hg histedit --continue 2>&1 | fixbundle + 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 +second edit also fails, but just continue + $ 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 -echo -echo a > e -hg add e -HGEDITOR="cat $EDITED > " hg histedit --continue 2>&1 | fixbundle -echo % second edit also fails, but just continue -hg histedit --continue 2>&1 | fixbundle +post message fix + $ hg log --graph + @ changeset: 5:6459970fb49b + | tag: tip + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: f + | + o changeset: 4:556f27c874b0 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: pick 177f92b77385 c + | + 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 + -echo % post message fix -hg log --graph - -echo % EOF + $ cd .. diff --git a/tests/test-histedit-outgoing.out b/tests/test-histedit-outgoing.out deleted file mode 100644 --- a/tests/test-histedit-outgoing.out +++ /dev/null @@ -1,36 +0,0 @@ -3 files updated, 0 files merged, 0 files removed, 0 files unresolved -% show the edit commands offered by outgoing -pick 055a42cdd887 3 d -pick e860deea161a 4 e -pick 652413bf663e 5 f - -# Edit history between 055a42cdd887 and 652413bf663e -# -# Commands: -# p, pick = use commit -# e, edit = use commit, but stop for amending -# f, fold = use commit, but fold into previous commit (combines N and N-1) -# d, drop = remove commit from history -# m, mess = edit message without changing commit content -# -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -% show the error from unrelated repos -abort: repository is unrelated -% show the error from unrelated repos -comparing with ../r -searching for changes -warning: repository is unrelated -pick 2a4042b45417 0 g -pick 68c46b4927ce 1 h -pick 51281e65ba79 2 i - -# Edit history between 2a4042b45417 and 51281e65ba79 -# -# Commands: -# p, pick = use commit -# e, edit = use commit, but stop for amending -# f, fold = use commit, but fold into previous commit (combines N and N-1) -# d, drop = remove commit from history -# m, mess = edit message without changing commit content -# -0 files updated, 0 files merged, 0 files removed, 0 files unresolved diff --git a/tests/test-histedit-outgoing b/tests/test-histedit-outgoing.t old mode 100755 new mode 100644 rename from tests/test-histedit-outgoing rename to tests/test-histedit-outgoing.t --- a/tests/test-histedit-outgoing +++ b/tests/test-histedit-outgoing.t @@ -1,61 +1,91 @@ -#!/bin/sh - -cat >> $HGRCPATH <> $HGRCPATH < [extensions] + > graphlog= + > histedit= + > EOF -EDITED=`pwd`/editedhistory -cat > $EDITED < $x - hg add $x - hg ci -m $x - done + $ EDITED=`pwd`/editedhistory + $ cat > $EDITED < pick 177f92b77385 c + > pick e860deea161a e + > pick 652413bf663e f + > pick 055a42cdd887 d + > EOF + $ initrepos () + > { + > hg init r + > cd r + > for x in a b c ; do + > echo $x > $x + > hg add $x + > hg ci -m $x + > done + > cd .. + > hg clone r r2 | grep -v updating + > cd r2 + > for x in d e f ; do + > echo $x > $x + > hg add $x + > hg ci -m $x + > done + > cd .. + > hg init r3 + > cd r3 + > for x in g h i ; do + > echo $x > $x + > hg add $x + > hg ci -m $x + > done + > cd .. + > } + + $ initrepos + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved - cd .. - hg clone r r2 | grep -v updating - cd r2 - for x in d e f ; do - echo $x > $x - hg add $x - hg ci -m $x - done +show the edit commands offered by outgoing + $ cd r2 + $ HGEDITOR=cat hg histedit --outgoing ../r | grep -v comparing | grep -v searching + pick 055a42cdd887 3 d + pick e860deea161a 4 e + pick 652413bf663e 5 f + + # Edit history between 055a42cdd887 and 652413bf663e + # + # Commands: + # p, pick = use commit + # e, edit = use commit, but stop for amending + # f, fold = use commit, but fold into previous commit (combines N and N-1) + # d, drop = remove commit from history + # m, mess = edit message without changing commit content + # + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cd .. - cd .. - hg init r3 - cd r3 - for x in g h i ; do - echo $x > $x - hg add $x - hg ci -m $x - done - cd .. -} - -initrepo +show the error from unrelated repos + $ cd r3 + $ HGEDITOR=cat hg histedit --outgoing ../r | grep -v comparing | grep -v searching + abort: repository is unrelated + [1] + $ cd .. -echo % show the edit commands offered by outgoing -cd r2 -HGEDITOR=cat hg histedit --outgoing ../r | grep -v comparing | grep -v searching -cd .. - -echo % show the error from unrelated repos -cd r3 -HGEDITOR=cat hg histedit --outgoing ../r | grep -v comparing | grep -v searching -cd .. - -echo % show the error from unrelated repos -cd r3 -HGEDITOR=cat hg histedit --force --outgoing ../r -cd .. +show the error from unrelated repos + $ cd r3 + $ HGEDITOR=cat hg histedit --force --outgoing ../r + comparing with ../r + searching for changes + warning: repository is unrelated + pick 2a4042b45417 0 g + pick 68c46b4927ce 1 h + pick 51281e65ba79 2 i + + # Edit history between 2a4042b45417 and 51281e65ba79 + # + # Commands: + # p, pick = use commit + # e, edit = use commit, but stop for amending + # f, fold = use commit, but fold into previous commit (combines N and N-1) + # d, drop = remove commit from history + # m, mess = edit message without changing commit content + # + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cd ..