tests/test-copy-move-merge.t
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
Fri, 21 Sep 2012 19:27:22 +0200
changeset 17647 d34ba4991188
parent 16913 f2719b387380
child 18135 a6fe1b9cc68f
permissions -rw-r--r--
histedit: replaces patching logic by merges The old and fragile patching logic is replaced by smart merges (as rebase and graft do). This should prevents some conflicts and smoother human resolution. For this purpose the "foldchanges" function is renamed to "applychanges" and handle a single revision only.

  $ hg init t
  $ cd t

  $ echo 1 > a
  $ hg ci -qAm "first"

  $ hg cp a b
  $ hg mv a c
  $ echo 2 >> b
  $ echo 2 >> c

  $ hg ci -qAm "second"

  $ hg co -C 0
  1 files updated, 0 files merged, 2 files removed, 0 files unresolved

  $ echo 0 > a
  $ echo 1 >> a

  $ hg ci -qAm "other"

  $ hg merge --debug
    searching for copies back to rev 1
    unmatched files in other:
     b
     c
    all copies found (* = to merge, ! = divergent, % = renamed and deleted):
     c -> a *
     b -> a *
    checking for directory renames
  resolving manifests
   overwrite: False, partial: False
   ancestor: b8bf91eeebbc, local: add3f11052fa+, remote: 17c05bb7fcb6
   a: remote moved to c -> m
   a: remote moved to b -> m
  preserving a for resolve of b
  preserving a for resolve of c
  removing a
  updating: a 1/2 files (50.00%)
  picked tool 'internal:merge' for b (binary False symlink False)
  merging a and b to b
  my b@add3f11052fa+ other b@17c05bb7fcb6 ancestor a@b8bf91eeebbc
   premerge successful
  updating: a 2/2 files (100.00%)
  picked tool 'internal:merge' for c (binary False symlink False)
  merging a and c to c
  my c@add3f11052fa+ other c@17c05bb7fcb6 ancestor a@b8bf91eeebbc
   premerge successful
  0 files updated, 2 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)

file b
  $ cat b
  0
  1
  2

file c
  $ cat c
  0
  1
  2

  $ cd ..