view tests/test-issue672.t @ 17471:ad1561723dde

amend: lock the repository during the whole process Without this changes another writer can lock the repository in the middle the amend process. The resulting mess can be pretty ugly.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Sat, 25 Aug 2012 15:37:28 +0200
parents e9ae770eff1c
children a6fe1b9cc68f
line wrap: on
line source

http://mercurial.selenic.com/bts/issue672

# 0-2-4
#  \ \ \
#   1-3-5
#
# rename in #1, content change in #4.

  $ hg init

  $ touch 1
  $ touch 2
  $ hg commit -Am init  # 0
  adding 1
  adding 2

  $ hg rename 1 1a
  $ hg commit -m rename # 1

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

  $ echo unrelated >> 2
  $ hg ci -m unrelated1 # 2
  created new head

  $ hg merge --debug 1
    searching for copies back to rev 1
    unmatched files in other:
     1a
    all copies found (* = to merge, ! = divergent, % = renamed and deleted):
     1a -> 1 
    checking for directory renames
  resolving manifests
   overwrite: False, partial: False
   ancestor: 81f4b099af3d, local: c64f439569a9+, remote: c12dcd37c90a
   1: other deleted -> r
   1a: remote created -> g
  updating: 1 1/2 files (50.00%)
  removing 1
  updating: 1a 2/2 files (100.00%)
  getting 1a
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
  (branch merge, don't forget to commit)

  $ hg ci -m merge1 # 3

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

  $ echo hello >> 1
  $ hg ci -m unrelated2 # 4
  created new head

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

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

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

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