comparison mercurial/hg.py @ 328:dac675ef6189

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-----
author mpm@selenic.com
date Mon, 13 Jun 2005 17:29:04 -0800
parents ce81bdd91d06
children 27d08c0c2a7e
comparison
equal deleted inserted replaced
327:a9ad98a9c9bc 328:dac675ef6189
732 r = [] 732 r = []
733 while unknown: 733 while unknown:
734 n = unknown.pop(0) 734 n = unknown.pop(0)
735 if n[0] in seen: 735 if n[0] in seen:
736 continue 736 continue
737 seen[n[0]] = 1
738 737
739 self.ui.debug("examining %s:%s\n" % (short(n[0]), short(n[1]))) 738 self.ui.debug("examining %s:%s\n" % (short(n[0]), short(n[1])))
740 if n[0] == nullid: 739 if n[0] == nullid:
741 break 740 break
742 if n[1] in seenbranch: 741 if n in seenbranch:
743 self.ui.debug("branch already found\n") 742 self.ui.debug("branch already found\n")
744 continue 743 continue
745 if n[1] and n[1] in m: # do we know the base? 744 if n[1] and n[1] in m: # do we know the base?
746 self.ui.debug("found incomplete branch %s:%s\n" 745 self.ui.debug("found incomplete branch %s:%s\n"
747 % (short(n[0]), short(n[1]))) 746 % (short(n[0]), short(n[1])))
748 search.append(n) # schedule branch range for scanning 747 search.append(n) # schedule branch range for scanning
749 seenbranch[n[1]] = 1 748 seenbranch[n] = 1
750 else: 749 else:
751 if n[1] not in seen and n[1] not in fetch: 750 if n[1] not in seen and n[1] not in fetch:
752 if n[2] in m and n[3] in m: 751 if n[2] in m and n[3] in m:
753 self.ui.debug("found new changeset %s\n" % 752 self.ui.debug("found new changeset %s\n" %
754 short(n[1])) 753 short(n[1]))
757 756
758 for a in n[2:4]: 757 for a in n[2:4]:
759 if a not in rep: 758 if a not in rep:
760 r.append(a) 759 r.append(a)
761 rep[a] = 1 760 rep[a] = 1
761
762 seen[n[0]] = 1
762 763
763 if r: 764 if r:
764 reqcnt += 1 765 reqcnt += 1
765 self.ui.debug("request %d: %s\n" % 766 self.ui.debug("request %d: %s\n" %
766 (reqcnt, " ".join(map(short, r)))) 767 (reqcnt, " ".join(map(short, r))))
773 774
774 while search: 775 while search:
775 n = search.pop(0) 776 n = search.pop(0)
776 reqcnt += 1 777 reqcnt += 1
777 l = remote.between([(n[0], n[1])])[0] 778 l = remote.between([(n[0], n[1])])[0]
779 l.append(n[1])
778 p = n[0] 780 p = n[0]
779 f = 1 781 f = 1
780 for i in l + [n[1]]: 782 for i in l:
783 self.ui.debug("narrowing %d:%d %s\n" % (f, len(l), short(i)))
781 if i in m: 784 if i in m:
782 if f <= 2: 785 if f <= 2:
783 self.ui.debug("found new branch changeset %s\n" % 786 self.ui.debug("found new branch changeset %s\n" %
784 short(p)) 787 short(p))
785 fetch.append(p) 788 fetch.append(p)