view tests/fish-merge @ 523:003df62ae39f

[PATCH] Force "hg clone" to always create a new directory -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 [PATCH] Force "hg clone" to always create a new directory From: Bryan O'Sullivan <bos@serpentine.com> I just screwed myself by typing "hg clone foo" without specifying a destination directory, and after I was done mopping up the mess, concluded that this is a dangerous mode of operation that has no practical value. I've thus modified the clone command so that it always creates a destination directory. If none is specified, the destination is taken as the basename of the source. hg clone foo -> error, because foo already exists hg clone http://www.selenic.com/hg -> new repo, named hg hg clone ../bar -> new repo, named bar manifest hash: f21ed8f805a60c1326d99220772e1574b0870d6c -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCwxsIywK+sNU5EO8RAgooAKC3IL6vKyADb9s2qqqi4GMw2Z7asACbBtE/ TvPgwGtIiB2GC+N+V7r1VpI= =uTcK -----END PGP SIGNATURE-----
author mpm@selenic.com
date Wed, 29 Jun 2005 14:04:56 -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