tests/test-amend.t
author Patrick Mezard <patrick@mezard.eu>
Wed, 20 Jun 2012 14:43:20 +0200
changeset 285 691cb55358b0
parent 273 87e4d1eec5e8
child 302 d68ccae92d52
permissions -rw-r--r--
obsolete: do not obsolete rebase --detach nullmerge revs Rebase state contains the changesets to rebase as well as 'nullmerge' entries used drive the merge strategy. These nullmerge were not rebased and should be ignored, and certainly not be marked obsolete.

  $ 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 debugsuccessors
  07f494440405 a34b93d251e4
  07f494440405 bd19cbe78fbf
  bd19cbe78fbf a34b93d251e4
  $ 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 debugsuccessors
  07f494440405 a34b93d251e4
  07f494440405 bd19cbe78fbf
  bd19cbe78fbf a34b93d251e4
  $ 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 debugsuccessors
  07f494440405 a34b93d251e4
  07f494440405 bd19cbe78fbf
  7384bbcba36f 000000000000
  bd19cbe78fbf a34b93d251e4
  $ 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