tests/test-commit-unresolved.t
author Durham Goode <durham@fb.com>
Tue, 14 Jan 2014 13:49:19 -0800
changeset 20292 8dc254198a8f
parent 20117 aa9385f983fa
child 21266 19d6fec60b81
permissions -rw-r--r--
changectx: increase perf of walk function When running 'hg cat -r . <file>' it was doing an expensive ctx.walk(m) which applied the regex to every file in the manifest. This changes changectx.walk to iterate over just the files in the regex, if no other patterns are specified. This cuts hg cat time by 50% in our repo and probably benefits a few other commands as well.

  $ 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

Merging a conflict araises

  $ hg merge
  merging A
  warning: conflicts during merge.
  merging A incomplete! (edit conflicts, 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 update -C .' 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
  $ hg commit -m "Merged"

  $ cd ..