Mercurial > hg > mercurial-crew-with-dirclash
view tests/fish-merge @ 301:5add718d92db
revlog: allow duplicates
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
revlog: allow duplicates
If two branches make the same change to the same parent, the result
will be an identical hash. Git apparently does this all the time. Deal
with it gracefully.
manifest hash: c6217eab4b310e1ae529dd75ab90e717dbe5d55d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCqU61ywK+sNU5EO8RAkFqAJ9KhWUQgjZbzzB/+mTkolH0GkT1awCfa+Mj
ulbI4xCRZcvfQE492mcNwQA=
=N6In
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Fri, 10 Jun 2005 00:26:29 -0800 |
parents | 9f64ee817199 |
children | 3d4d5f2aba9a 4fc63e22b1fe |
line wrap: on
line source
set -e set -x # skip commit logs export HGMERGE=tkmerge export EDITOR=true rm -rf m m1 m2 mkdir m cd m echo "m this that" echo "this" > a echo "that" > b hg init hg addremove hg commit echo "a:" `hg dump a` "b:" `hg dump b` echo cd .. echo "m2 this that " mkdir m2 cd m2 hg branch ../m hg checkout echo "a:" `hg dump a` "b:" `hg dump b` echo cd ../m echo "m this1 that " echo "this1" > a hg commit echo "a:" `hg dump a` "b:" `hg dump b` echo cd .. echo "m1 this1 that " mkdir m1 cd m1 hg branch ../m hg checkout echo "a:" `hg dump a` "b:" `hg dump b` echo cd ../m1 echo "m1 this1 that1" echo "that1" > b hg commit echo "a:" `hg dump a` "b:" `hg dump b` echo cd ../m2 echo "m2 this that2" echo "that2" > b hg commit echo "a:" `hg dump a` "b:" `hg dump b` echo cd ../m1 echo "m1:m2 this1 that1 that2" hg merge ../m2 # b should conflict, a should be fine echo "a:" `hg dump a` "b:" `hg dump b` echo cd ../m2 echo "m2 this2 that2" echo "this2" > a hg commit echo "a:" `hg dump a` "b:" `hg dump b` echo cd ../m2 echo "m2:m this12 that2" hg merge ../m # a should conflict, b should be fine echo "a:" `hg dump a` "b:" `hg dump b` echo # now here's the interesting bit # if we choose ancestor by file, no conflicts # otherwise we've got two equally close ancestors, each with a conflict # if we go back to the root, we'll have both conflicts again echo "m2:m1 this12 that12" hg merge ../m1 # should be clean echo "a:" `hg dump a` "b:" `hg dump b` echo