mercurial/hg.py
changeset 637 31e090c34d3b
parent 636 ac0ec421e3a5
child 638 35f7adfefa69
equal deleted inserted replaced
636:ac0ec421e3a5 637:31e090c34d3b
   975 
   975 
   976         return fetch
   976         return fetch
   977 
   977 
   978     def findoutgoing(self, remote):
   978     def findoutgoing(self, remote):
   979         base = {}
   979         base = {}
   980         findincoming(self, remote, base)
   980         self.findincoming(remote, base)
   981         remain = dict.fromkeys(self.changelog.nodemap)
   981         remain = dict.fromkeys(self.changelog.nodemap)
   982 
   982 
   983         # prune everything remote has from the tree
   983         # prune everything remote has from the tree
       
   984         del remain[nullid]
   984         remove = base.keys()
   985         remove = base.keys()
   985         while remove:
   986         while remove:
   986             n = remove.pop(0)
   987             n = remove.pop(0)
   987             if n in remain:
   988             if n in remain:
   988                 del remain[n]
   989                 del remain[n]
   989                 for p in self.changelog.parents(n):
   990                 for p in self.changelog.parents(n):
   990                     remain.append(p)
   991                     remove.append(p)
   991 
   992 
   992         # find every node whose parents have been pruned
   993         # find every node whose parents have been pruned
   993         subset = []
   994         subset = []
   994         for n in remain:
   995         for n in remain:
   995             p1, p2 = self.changelog.parents(n)
   996             p1, p2 = self.changelog.parents(n)