|
1 # http://mercurial.selenic.com/bts/issue522 |
|
2 |
|
3 # In the merge below, the file "foo" has the same contents in both |
|
4 # parents, but if we look at the file-level history, we'll notice that |
|
5 # the version in p1 is an ancestor of the version in p2. This test |
|
6 # makes sure that we'll use the version from p2 in the manifest of the |
|
7 # merge revision. |
|
8 |
|
9 $ hg init |
|
10 |
|
11 $ echo foo > foo |
|
12 $ hg ci -qAm 'add foo' |
|
13 |
|
14 $ echo bar >> foo |
|
15 $ hg ci -m 'change foo' |
|
16 |
|
17 $ hg backout -r tip -m 'backout changed foo' |
|
18 reverting foo |
|
19 changeset 2:4d9e78aaceee backs out changeset 1:b515023e500e |
|
20 |
|
21 $ hg up -C 0 |
|
22 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
23 |
|
24 $ touch bar |
|
25 $ hg ci -qAm 'add bar' |
|
26 |
|
27 $ hg merge --debug |
|
28 searching for copies back to rev 1 |
|
29 unmatched files in local: |
|
30 bar |
|
31 resolving manifests |
|
32 overwrite None partial False |
|
33 ancestor bbd179dfa0a7 local 71766447bdbb+ remote 4d9e78aaceee |
|
34 foo: remote is newer -> g |
|
35 updating: foo 1/1 files (100.00%) |
|
36 getting foo |
|
37 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
38 (branch merge, don't forget to commit) |
|
39 |
|
40 $ hg debugstate | grep foo |
|
41 n 0 -2 unset foo |
|
42 |
|
43 $ hg st -A foo |
|
44 M foo |
|
45 |
|
46 $ hg ci -m 'merge' |
|
47 |
|
48 $ hg manifest --debug | grep foo |
|
49 c6fc755d7e68f49f880599da29f15add41f42f5a 644 foo |
|
50 |
|
51 $ hg debugindex .hg/store/data/foo.i |
|
52 rev offset length base linkrev nodeid p1 p2 |
|
53 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000 |
|
54 1 5 9 1 1 6f4310b00b9a 2ed2a3912a0b 000000000000 |
|
55 2 14 5 2 2 c6fc755d7e68 6f4310b00b9a 000000000000 |
|
56 |