# HG changeset patch # User mpm@selenic.com # Date 1118712544 28800 # Node ID dac675ef618949ced82e437d797083c7190faee5 # Parent a9ad98a9c9bc0e80a396ac7e59577ebdfb791c86 hg pull: more query fixes -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 hg pull: more query fixes Pull was getting confused by single-element branches because it had seen the top end already. Also, the previous change to do seenbranch on the base of the branch was bogus. Minor cleanup and a bit more diagnostics in the branch-narrowing code. manifest hash: 71d4dced9f74bef43d3a54d086dccd0a96d68e26 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCrjLgywK+sNU5EO8RAsxSAJ92U31Pz7K14Ctje4SEec2857Ut7QCgoVwY ho65mloslCSidLsEnxYfBDI= =Wts9 -----END PGP SIGNATURE----- diff -r a9ad98a9c9bc -r dac675ef6189 mercurial/hg.py --- a/mercurial/hg.py Mon Jun 13 15:01:38 2005 -0800 +++ b/mercurial/hg.py Mon Jun 13 17:29:04 2005 -0800 @@ -734,19 +734,18 @@ n = unknown.pop(0) if n[0] in seen: continue - seen[n[0]] = 1 self.ui.debug("examining %s:%s\n" % (short(n[0]), short(n[1]))) if n[0] == nullid: break - if n[1] in seenbranch: + if n in seenbranch: self.ui.debug("branch already found\n") continue if n[1] and n[1] in m: # do we know the base? self.ui.debug("found incomplete branch %s:%s\n" % (short(n[0]), short(n[1]))) search.append(n) # schedule branch range for scanning - seenbranch[n[1]] = 1 + seenbranch[n] = 1 else: if n[1] not in seen and n[1] not in fetch: if n[2] in m and n[3] in m: @@ -760,6 +759,8 @@ r.append(a) rep[a] = 1 + seen[n[0]] = 1 + if r: reqcnt += 1 self.ui.debug("request %d: %s\n" % @@ -775,9 +776,11 @@ n = search.pop(0) reqcnt += 1 l = remote.between([(n[0], n[1])])[0] + l.append(n[1]) p = n[0] f = 1 - for i in l + [n[1]]: + for i in l: + self.ui.debug("narrowing %d:%d %s\n" % (f, len(l), short(i))) if i in m: if f <= 2: self.ui.debug("found new branch changeset %s\n" %