mutable-history / tests / test-amend.t

  $ cat >> $HGRCPATH <<EOF
  > [defaults]
  > amend=-d "0 0"
  > [extensions]
  > hgext.rebase=
  > hgext.graphlog=
  > EOF
  $ echo "obsolete=$(echo $(dirname $TESTDIR))/hgext/obsolete.py" >> $HGRCPATH
  $ 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 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 ci -m reseta
  $ hg amend --change 2
  abort: no updates found
  [255]
  $ 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]
  $ glog
  @  6@foo(secret) amends a34b93d251e49c93d5685ebacad785c73a7e8605
  |
  o  5@default(draft) resetbranch
  |
  o  4@foo(draft) reseta
  |
  o  3@foo(draft) changea
  |
  o  2@foo(draft) adda
  
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.