Skip to content
Snippets Groups Projects
Commit 3dd5ce2fddb6 authored by mpm's avatar mpm
Browse files

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-----
parent 37625132fe37
No related branches found
No related tags found
No related merge requests found
......@@ -525,7 +525,4 @@
return nl
def getchangegroup(self, remote):
tip = remote.branches([])[0]
self.ui.debug("remote tip branch is %s:%s\n" %
(short(tip[0]), short(tip[1])))
m = self.changelog.nodemap
......@@ -531,6 +528,5 @@
m = self.changelog.nodemap
unknown = [tip]
search = []
fetch = []
seen = {}
seenbranch = {}
......@@ -533,7 +529,17 @@
search = []
fetch = []
seen = {}
seenbranch = {}
tip = remote.branches([])[0]
self.ui.debug("remote tip branch is %s:%s\n" %
(short(tip[0]), short(tip[1])))
# if we have an empty repo, fetch everything
if self.changelog.tip() == nullid:
return remote.changegroup([nullid])
# otherwise, assume we're closer to the tip than the root
unknown = [tip]
if tip[0] in m:
self.ui.note("nothing to do!\n")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment