test-amend.t
220 lines
| 4.1 KiB
| text/troff
|
Tads3Lexer
/ tests / test-amend.t
Jun Wu
|
r33404 | #testcases obsstore-off obsstore-on | ||
$ cat << EOF >> $HGRCPATH | ||||
> [extensions] | ||||
> amend= | ||||
> debugdrawdag=$TESTDIR/drawdag.py | ||||
> [diff] | ||||
> git=1 | ||||
> EOF | ||||
#if obsstore-on | ||||
$ cat << EOF >> $HGRCPATH | ||||
> [experimental] | ||||
> evolution=createmarkers | ||||
> EOF | ||||
#endif | ||||
Basic amend | ||||
$ hg init repo1 | ||||
$ cd repo1 | ||||
$ hg debugdrawdag <<'EOS' | ||||
> B | ||||
> | | ||||
> A | ||||
> EOS | ||||
$ hg update B -q | ||||
$ echo 2 >> B | ||||
#if obsstore-off | ||||
$ hg amend | ||||
saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/112478962961-af2c0941-amend.hg (glob) | ||||
$ hg log -p -G --hidden -T '{rev} {node|short} {desc}\n' | ||||
@ 1 be169c7e8dbe B | ||||
| diff --git a/B b/B | ||||
| new file mode 100644 | ||||
| --- /dev/null | ||||
| +++ b/B | ||||
| @@ -0,0 +1,1 @@ | ||||
| +B2 | ||||
| | ||||
o 0 426bada5c675 A | ||||
diff --git a/A b/A | ||||
new file mode 100644 | ||||
--- /dev/null | ||||
+++ b/A | ||||
@@ -0,0 +1,1 @@ | ||||
+A | ||||
\ No newline at end of file | ||||
#else | ||||
$ hg amend | ||||
$ hg log -p -G --hidden -T '{rev} {node|short} {desc}\n' | ||||
@ 3 be169c7e8dbe B | ||||
| diff --git a/B b/B | ||||
| new file mode 100644 | ||||
| --- /dev/null | ||||
| +++ b/B | ||||
| @@ -0,0 +1,1 @@ | ||||
| +B2 | ||||
| | ||||
| x 2 edf08988b141 temporary amend commit for 112478962961 | ||||
| | diff --git a/B b/B | ||||
| | --- a/B | ||||
| | +++ b/B | ||||
| | @@ -1,1 +1,1 @@ | ||||
| | -B | ||||
| | \ No newline at end of file | ||||
| | +B2 | ||||
| | | ||||
| x 1 112478962961 B | ||||
|/ diff --git a/B b/B | ||||
| new file mode 100644 | ||||
| --- /dev/null | ||||
| +++ b/B | ||||
| @@ -0,0 +1,1 @@ | ||||
| +B | ||||
| \ No newline at end of file | ||||
| | ||||
o 0 426bada5c675 A | ||||
diff --git a/A b/A | ||||
new file mode 100644 | ||||
--- /dev/null | ||||
+++ b/A | ||||
@@ -0,0 +1,1 @@ | ||||
+A | ||||
\ No newline at end of file | ||||
#endif | ||||
Nothing changed | ||||
$ hg amend | ||||
nothing changed | ||||
[1] | ||||
Matcher and metadata options | ||||
$ echo 3 > C | ||||
$ echo 4 > D | ||||
$ hg add C D | ||||
$ hg amend -m NEWMESSAGE -I C -q | ||||
$ hg log -r . -T '{node|short} {desc} {files}\n' | ||||
c7ba14d9075b NEWMESSAGE B C | ||||
$ echo 5 > E | ||||
$ rm C | ||||
$ hg amend -d '2000 1000' -u 'Foo <foo@example.com>' -A C D -q | ||||
$ hg log -r . -T '{node|short} {desc} {files} {author} {date}\n' | ||||
14f6c4bcc865 NEWMESSAGE B D Foo <foo@example.com> 2000.01000 | ||||
Amend with editor | ||||
$ cat > $TESTTMP/prefix.sh <<'EOF' | ||||
> printf 'EDITED: ' > $TESTTMP/msg | ||||
> cat "$1" >> $TESTTMP/msg | ||||
> mv $TESTTMP/msg "$1" | ||||
> EOF | ||||
$ chmod +x $TESTTMP/prefix.sh | ||||
Matt Harbison
|
r33431 | $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend --edit -q | ||
Jun Wu
|
r33404 | $ hg log -r . -T '{node|short} {desc}\n' | ||
298f085230c3 EDITED: NEWMESSAGE | ||||
Matt Harbison
|
r33431 | $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend -e -m MSG -q | ||
Jun Wu
|
r33404 | $ hg log -r . -T '{node|short} {desc}\n' | ||
974f07f28537 EDITED: MSG | ||||
$ echo FOO > $TESTTMP/msg | ||||
$ hg amend -l $TESTTMP/msg -m BAR | ||||
abort: options --message and --logfile are mutually exclusive | ||||
[255] | ||||
$ hg amend -l $TESTTMP/msg -q | ||||
$ hg log -r . -T '{node|short} {desc}\n' | ||||
507be9bdac71 FOO | ||||
Interactive mode | ||||
$ touch F G | ||||
$ hg add F G | ||||
$ cat <<EOS | hg amend -i --config ui.interactive=1 -q | ||||
> y | ||||
> n | ||||
> EOS | ||||
diff --git a/F b/F | ||||
new file mode 100644 | ||||
examine changes to 'F'? [Ynesfdaq?] y | ||||
diff --git a/G b/G | ||||
new file mode 100644 | ||||
examine changes to 'G'? [Ynesfdaq?] n | ||||
$ hg log -r . -T '{files}\n' | ||||
B D F | ||||
Amend in the middle of a stack | ||||
$ hg init $TESTTMP/repo2 | ||||
$ cd $TESTTMP/repo2 | ||||
$ hg debugdrawdag <<'EOS' | ||||
> C | ||||
> | | ||||
> B | ||||
> | | ||||
> A | ||||
> EOS | ||||
$ hg update -q B | ||||
$ echo 2 >> B | ||||
$ hg amend | ||||
abort: cannot amend changeset with children | ||||
[255] | ||||
#if obsstore-on | ||||
With allowunstable, amend could work in the middle of a stack | ||||
$ cat >> $HGRCPATH <<EOF | ||||
> [experimental] | ||||
> evolution=createmarkers, allowunstable | ||||
> EOF | ||||
$ hg amend | ||||
$ hg log -T '{rev} {node|short} {desc}\n' -G | ||||
@ 4 be169c7e8dbe B | ||||
| | ||||
| o 2 26805aba1e60 C | ||||
| | | ||||
| x 1 112478962961 B | ||||
|/ | ||||
o 0 426bada5c675 A | ||||
#endif | ||||
Cannot amend public changeset | ||||
$ hg phase -r A --public | ||||
$ hg update -C -q A | ||||
$ hg amend -m AMEND -q | ||||
abort: cannot amend public changesets | ||||
[255] | ||||
Amend a merge changeset | ||||
$ hg init $TESTTMP/repo3 | ||||
$ cd $TESTTMP/repo3 | ||||
$ hg debugdrawdag <<'EOS' | ||||
> C | ||||
> /| | ||||
> A B | ||||
> EOS | ||||
$ hg update -q C | ||||
$ hg amend -m FOO -q | ||||
$ rm .hg/localtags | ||||
$ hg log -G -T '{desc}\n' | ||||
@ FOO | ||||
|\ | ||||
| o B | ||||
| | ||||
o A | ||||