tests/test-double-merge.t
author Olle Lundberg <geek@nerd.sh>
Wed, 26 Mar 2014 11:59:13 +0100
changeset 20831 864c56cb8945
parent 18605 bcf29565d89f
child 20945 18adc15635a1
permissions -rw-r--r--
contrib: don't hardcode path to bash interpreter Use the env binary to figure out the correct bash to use. Certain systems ships with an ancient version of bash, but the user might have installed a newer one that is earlier in $PATH. For example the current version of Mac OS X ships version 3.2.51 of bash, which does not understand new fancy builtins such as readarray. A user might install a newer version of bash, use that as their shell and add that path before bin.

  $ hg init repo
  $ cd repo

  $ echo line 1 > foo
  $ hg ci -qAm 'add foo'

copy foo to bar and change both files
  $ hg cp foo bar
  $ echo line 2-1 >> foo
  $ echo line 2-2 >> bar
  $ hg ci -m 'cp foo bar; change both'

in another branch, change foo in a way that doesn't conflict with
the other changes
  $ hg up -qC 0
  $ echo line 0 > foo
  $ hg cat foo >> foo
  $ hg ci -m 'change foo'
  created new head

we get conflicts that shouldn't be there
  $ hg merge -P
  changeset:   1:484bf6903104
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     cp foo bar; change both
  
  $ hg merge --debug
    searching for copies back to rev 1
    unmatched files in other:
     bar
    all copies found (* = to merge, ! = divergent, % = renamed and deleted):
     src: 'foo' -> dst: 'bar' *
    checking for directory renames
  resolving manifests
   branchmerge: True, force: False, partial: False
   ancestor: e6dc8efe11cc, local: 6a0df1dad128+, remote: 484bf6903104
   foo: remote copied to bar -> m
    preserving foo for resolve of bar
   foo: versions differ -> m
    preserving foo for resolve of foo
  updating: foo 1/2 files (50.00%)
  picked tool 'internal:merge' for bar (binary False symlink False)
  merging foo and bar to bar
  my bar@6a0df1dad128+ other bar@484bf6903104 ancestor foo@e6dc8efe11cc
   premerge successful
  updating: foo 2/2 files (100.00%)
  picked tool 'internal:merge' for foo (binary False symlink False)
  merging foo
  my foo@6a0df1dad128+ other foo@484bf6903104 ancestor foo@e6dc8efe11cc
   premerge successful
  0 files updated, 2 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)

contents of foo
  $ cat foo
  line 0
  line 1
  line 2-1

contents of bar
  $ cat bar
  line 0
  line 1
  line 2-2

  $ cd ..