--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-issue522.t Fri Sep 03 23:34:37 2010 +0200
@@ -0,0 +1,56 @@
+# http://mercurial.selenic.com/bts/issue522
+
+# In the merge below, the file "foo" has the same contents in both
+# parents, but if we look at the file-level history, we'll notice that
+# the version in p1 is an ancestor of the version in p2. This test
+# makes sure that we'll use the version from p2 in the manifest of the
+# merge revision.
+
+ $ hg init
+
+ $ echo foo > foo
+ $ hg ci -qAm 'add foo'
+
+ $ echo bar >> foo
+ $ hg ci -m 'change foo'
+
+ $ hg backout -r tip -m 'backout changed foo'
+ reverting foo
+ changeset 2:4d9e78aaceee backs out changeset 1:b515023e500e
+
+ $ hg up -C 0
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+ $ touch bar
+ $ hg ci -qAm 'add bar'
+
+ $ hg merge --debug
+ searching for copies back to rev 1
+ unmatched files in local:
+ bar
+ resolving manifests
+ overwrite None partial False
+ ancestor bbd179dfa0a7 local 71766447bdbb+ remote 4d9e78aaceee
+ foo: remote is newer -> g
+ updating: foo 1/1 files (100.00%)
+ getting foo
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+
+ $ hg debugstate | grep foo
+ n 0 -2 unset foo
+
+ $ hg st -A foo
+ M foo
+
+ $ hg ci -m 'merge'
+
+ $ hg manifest --debug | grep foo
+ c6fc755d7e68f49f880599da29f15add41f42f5a 644 foo
+
+ $ hg debugindex .hg/store/data/foo.i
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000
+ 1 5 9 1 1 6f4310b00b9a 2ed2a3912a0b 000000000000
+ 2 14 5 2 2 c6fc755d7e68 6f4310b00b9a 000000000000
+