tests/manifest-bug
author mpm@selenic.com
Sun, 29 May 2005 09:06:43 -0800
changeset 190 3dd5ce2fddb6
parent 28 9f64ee817199
permissions -rw-r--r--
merge: short-circuit search for merge into empty repo -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 merge: short-circuit search for merge into empty repo We should have 3 cases for merge: - - we have no changesets - - we have less than half the changesets - - we have more than half the changesets For no changesets, we can immediately tell that we need everything. This happens when we initially branch from a remote repo, so we simply shortcircuit the search and grab everything from the root When we're actually tracking a project, we should generally have most of the changesets, so the current search algorithm should minimize searching. It should rarely occur that upstreams gets far ahead of us, in which case, we suffer a longer search. manifest hash: eabd55841b03225176ea72b985aad36431a438a9 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCmfajywK+sNU5EO8RAuyKAKCf7Nw6XSK5HEzbrZae7Q06e3dk4wCgjbK6 YUTEfkpPP1h3mNHIHRKz+aI= =eGMq -----END PGP SIGNATURE-----

#!/bin/sh -x

set +e

BASE=foo.base
BR1=foo.br1
BR2=foo.br2
BR2_1=foo.br2_1

mkdir $BASE
cd $BASE
hg init
echo test > file
hg add file
EDITOR="echo 'initial commit' > " hg commit
cd ..

mkdir $BR1
cd $BR1
hg branch ../$BASE
hg checkout
echo test > file1
hg addremove
EDITOR="echo side commit >" hg commit
cd ..

mkdir $BR2
cd $BR2
hg branch ../$BASE
hg checkout
echo yet more >> file2
hg addremove
EDITOR="echo second update >" hg commit
cd ..

mkdir $BR2_1
cd $BR2_1
hg branch ../$BR2
hg checkout
EDITOR="echo commit merge >" hg merge ../$BR1

hg checkout