tests/test-commit-unresolved.t
author Gregory Szorc <gregory.szorc@gmail.com>
Thu, 07 Mar 2019 15:43:54 -0800
changeset 41920 a2e191a937a9
parent 35704 41ef02ba329b
child 42600 3bc400ccbf99
permissions -rw-r--r--
packaging: extract py2exe functionality to own module py2exe builds are shared between Inno Setup and WIX. We'll want the logic for performing py2exe builds to be reusable across the code for both installers. This commit extracts the py2exe-specific functionality into its own module. There's definitely room to customize things further. This will be done in future commits, as necessary. (I'm not even sure what customizations WIX will require yet. Presumably a lot.) Differential Revision: https://phab.mercurial-scm.org/D6091

  $ addcommit () {
  >     echo $1 > $1
  >     hg add $1
  >     hg commit -d "${2} 0" -m $1
  > }

  $ commit () {
  >     hg commit -d "${2} 0" -m $1
  > }

  $ hg init a
  $ cd a
  $ addcommit "A" 0
  $ addcommit "B" 1
  $ echo "C" >> A
  $ commit "C" 2

  $ hg update -C 0
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ echo "D" >> A
  $ commit "D" 3
  created new head

State before the merge

  $ hg status
  $ hg id
  e45016d2b3d3 tip
  $ hg summary
  parent: 3:e45016d2b3d3 tip
   D
  branch: default
  commit: (clean)
  update: 2 new changesets, 2 branch heads (merge)
  phases: 4 draft

Testing the abort functionality first in case of conflicts

  $ hg merge --abort
  abort: no merge in progress
  [255]
  $ hg merge
  merging A
  warning: conflicts while merging A! (edit, then use 'hg resolve --mark')
  1 files updated, 0 files merged, 0 files removed, 1 files unresolved
  use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
  [1]

  $ hg merge --abort e4501
  abort: cannot specify a node with --abort
  [255]
  $ hg merge --abort --rev e4501
  abort: cannot specify both --rev and --abort
  [255]

  $ hg merge --abort
  aborting the merge, updating back to e45016d2b3d3
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved

Checking that we got back in the same state

  $ hg status
  ? A.orig
  $ hg id
  e45016d2b3d3 tip
  $ hg summary
  parent: 3:e45016d2b3d3 tip
   D
  branch: default
  commit: 1 unknown (clean)
  update: 2 new changesets, 2 branch heads (merge)
  phases: 4 draft

Merging a conflict araises

  $ hg merge
  merging A
  warning: conflicts while merging A! (edit, then use 'hg resolve --mark')
  1 files updated, 0 files merged, 0 files removed, 1 files unresolved
  use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
  [1]

Correct the conflict without marking the file as resolved

  $ echo "ABCD" > A
  $ hg commit -m "Merged"
  abort: unresolved merge conflicts (see 'hg help resolve')
  [255]

Mark the conflict as resolved and commit

  $ hg resolve -m A
  (no more unresolved files)
  $ hg commit -m "Merged"

Test that if a file is removed but not marked resolved, the commit still fails
(issue4972)

  $ hg up ".^"
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ hg merge 2
  merging A
  warning: conflicts while merging A! (edit, then use 'hg resolve --mark')
  1 files updated, 0 files merged, 0 files removed, 1 files unresolved
  use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
  [1]
  $ hg rm --force A
  $ hg commit -m merged
  abort: unresolved merge conflicts (see 'hg help resolve')
  [255]

  $ hg resolve -ma
  (no more unresolved files)
  $ hg commit -m merged
  created new head

Testing the abort functionality in case of no conflicts

  $ hg update -C 0
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ addcommit "E" 4
  created new head
  $ hg id
  68352a18a7c4 tip

  $ hg merge -r 4
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)

  $ hg merge --preview --abort
  abort: cannot specify --preview with --abort
  [255]

  $ hg merge --abort
  aborting the merge, updating back to 68352a18a7c4
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved

  $ hg id
  68352a18a7c4 tip

  $ cd ..