view tests/test-conflict.t @ 18134:6c35b53cd28b

copies: separate moves via directory renames from explicit copies Currently the "copy" dict contains both explicit copies/moves made by a context and pending moves that need to happen because the other context moved the directory the file was in. For explicit copies, the dict stores a destination to source map, while for pending moves via directory renames, it stores a source to destination map. The merge code uses this fact in a non- obvious way to differentiate between these two cases. We make this explicit by storing these pending moves in a separate dict. The dict still has a source to destination map, but that is called out in the docstring.
author Siddharth Agarwal <sid0@fb.com>
date Wed, 26 Dec 2012 14:50:17 -0800
parents 2371f4aea665
children 25d5a9ecbb85
line wrap: on
line source

  $ hg init
  $ echo "nothing" > a
  $ hg add a
  $ hg commit -m ancestor
  $ echo "something" > a
  $ hg commit -m branch1
  $ hg co 0
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ echo "something else" > a
  $ hg commit -m branch2
  created new head

  $ hg merge 1
  merging a
  warning: conflicts during merge.
  merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
  0 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]

  $ hg id
  32e80765d7fe+75234512624c+ tip

  $ cat a
  <<<<<<< local
  something else
  =======
  something
  >>>>>>> other

  $ hg status
  M a
  ? a.orig