$ cat >> $HGRCPATH <<EOF
> [defaults]
> amend=-d "0 0"
> [extensions]
> hgext.rebase=
> hgext.graphlog=
> EOF
$ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH
$ glog() {
> hg glog --template '{rev}@{branch}({phase}) {desc|firstline}\n' "$@"
> }
$ hg init repo
$ cd repo
$ echo a > a
$ hg ci -Am adda
adding a
Test amend captures branches
$ hg branch foo
marked working directory as branch foo
(branches are permanent and global, did you want a bookmark?)
$ hg amend
$ hg debugobsolete
bd19cbe78fbfbd87eb33420c63986fe5f3154f2c a34b93d251e49c93d5685ebacad785c73a7e8605 0 {'date': '* *', 'user': 'test'} (glob)
07f4944404050f47db2e5c5071e0e84e7a27bba9 a34b93d251e49c93d5685ebacad785c73a7e8605 0 {'date': '* *', 'user': 'test'} (glob)
$ hg branch
foo
$ hg branches
foo 2:a34b93d251e4
default 0:07f494440405 (inactive)
$ glog
@ 2@foo(draft) adda
Test no-op
$ hg amend
abort: no updates found
[255]
$ glog
@ 2@foo(draft) adda
Test forcing the message to the same value, no intermediate revision.
$ hg amend -m 'adda'
abort: no updates found
[255]
$ glog
@ 2@foo(draft) adda
Test collapsing into an existing revision, no intermediate revision.
$ echo a >> a
$ hg ci -m changea
$ echo a > a
$ hg status
M a
$ hg pstatus
$ hg diff
diff -r 2f97fe38810f a
--- a/a Thu Jan 01 00:00:00 1970 +0000
+++ b/a * +0000 (glob)
@@ -1,2 +1,1 @@
a
-a
$ hg pdiff
$ hg ci -m reseta
$ hg amend --change 2
abort: no updates found
[255]
$ hg debugobsolete
bd19cbe78fbfbd87eb33420c63986fe5f3154f2c a34b93d251e49c93d5685ebacad785c73a7e8605 0 {'date': '* *', 'user': 'test'} (glob)
07f4944404050f47db2e5c5071e0e84e7a27bba9 a34b93d251e49c93d5685ebacad785c73a7e8605 0 {'date': '* *', 'user': 'test'} (glob)
$ hg phase 2
2: draft
$ glog
@ 4@foo(draft) reseta
|
o 3@foo(draft) changea
|
o 2@foo(draft) adda
Test collapsing into an existing rev, with an intermediate revision.
$ hg branch --force default
marked working directory as branch default
(branches are permanent and global, did you want a bookmark?)
$ hg ci -m resetbranch
created new head
$ hg branch --force foo
marked working directory as branch foo
(branches are permanent and global, did you want a bookmark?)
$ hg amend --change 2
abort: no updates found
[255]
$ hg debugobsolete
bd19cbe78fbfbd87eb33420c63986fe5f3154f2c a34b93d251e49c93d5685ebacad785c73a7e8605 0 {'date': '* *', 'user': 'test'} (glob)
07f4944404050f47db2e5c5071e0e84e7a27bba9 a34b93d251e49c93d5685ebacad785c73a7e8605 0 {'date': '* *', 'user': 'test'} (glob)
7384bbcba36fde1a789cd00f9cd6f9b919ab5910 0 {'date': '* *', 'user': 'test'} (glob)
$ glog
@ 6@foo(draft) amends a34b93d251e49c93d5685ebacad785c73a7e8605
|
o 5@default(draft) resetbranch
|
o 4@foo(draft) reseta
|
o 3@foo(draft) changea
|
o 2@foo(draft) adda