Mercurial > hg
view tests/manifest-bug @ 190:3dd5ce2fddb6
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-----
author | mpm@selenic.com |
---|---|
date | Sun, 29 May 2005 09:06:43 -0800 |
parents | 9f64ee817199 |
children |
line wrap: on
line source
#!/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