Mercurial > hg > mercurial-crew-with-dirclash
view tests/fish-merge @ 566:b2c9b36bd639
repo.changes: fix duplicate changes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
repo.changes: fix duplicate changes
We need to discard the changed and added lists from dirstate.changes
before adding to them when comparing manifests. Otherwise something
that changed from rev->parent->working dir will appear twice.
Bug spotted by Goffredo Baroncelli <kreijack@libero.it>
manifest hash: 64c335e2fe6df6d1ce29d0903f16821c7566768f
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCxcT3ywK+sNU5EO8RAivLAJ4gqbWfMnt+BdyGac/ZGduy2KbNegCgncPV
D4ay6Qw9sIodEPjRebvk3GE=
=AZd2
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Fri, 01 Jul 2005 14:34:31 -0800 |
parents | 4fc63e22b1fe |
children | 95c258ee5264 8f5637f0a0c0 0902ffece4b4 |
line wrap: on
line source
#!/bin/sh 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