##// END OF EJS Templates
Sync with -stable
Matt Mackall -
r3928:4df475e2 merge default
parent child Browse files
Show More
@@ -1,3 +1,4 b''
1 1 35fb62a3a673d5322f6274a44ba6456e5e4b3b37 0 iD8DBQBEYmO2ywK+sNU5EO8RAnaYAKCO7x15xUn5mnhqWNXqk/ehlhRt2QCfRDfY0LrUq2q4oK/KypuJYPHgq1A=
2 2 2be3001847cb18a23c403439d9e7d0ace30804e9 0 iD8DBQBExUbjywK+sNU5EO8RAhzxAKCtyHAQUzcTSZTqlfJ0by6vhREwWQCghaQFHfkfN0l9/40EowNhuMOKnJk=
3 3 36a957364b1b89c150f2d0e60a99befe0ee08bd3 0 iD8DBQBFfL2QywK+sNU5EO8RAjYFAKCoGlaWRTeMsjdmxAjUYx6diZxOBwCfY6IpBYsKvPTwB3oktnPt5Rmrlys=
4 27230c29bfec36d5540fbe1c976810aefecfd1d2 0 iD8DBQBFheweywK+sNU5EO8RAt7VAKCrqJQWT2/uo2RWf0ZI4bLp6v82jACgjrMdsaTbxRsypcmEsdPhlG6/8F4=
@@ -13,3 +13,4 b' 6a03cff2b0f5d30281e6addefe96b993582f2eac'
13 13 35fb62a3a673d5322f6274a44ba6456e5e4b3b37 0.9
14 14 2be3001847cb18a23c403439d9e7d0ace30804e9 0.9.1
15 15 36a957364b1b89c150f2d0e60a99befe0ee08bd3 0.9.2
16 27230c29bfec36d5540fbe1c976810aefecfd1d2 0.9.3
@@ -1284,7 +1284,7 b' class localrepository(repo.repository):'
1284 1284 newheads = list(heads)
1285 1285 for r in remote_heads:
1286 1286 if r in self.changelog.nodemap:
1287 desc = self.changelog.heads(r)
1287 desc = self.changelog.heads(r, heads)
1288 1288 l = [h for h in heads if h in desc]
1289 1289 if not l:
1290 1290 newheads.append(r)
@@ -716,15 +716,19 b' class revlog(object):'
716 716 assert heads
717 717 return (orderedout, roots, heads)
718 718
719 def heads(self, start=None):
719 def heads(self, start=None, stop=None):
720 720 """return the list of all nodes that have no children
721 721
722 722 if start is specified, only heads that are descendants of
723 723 start will be returned
724
724 if stop is specified, it will consider all the revs from stop
725 as if they had no children
725 726 """
726 727 if start is None:
727 728 start = nullid
729 if stop is None:
730 stop = []
731 stoprevs = dict.fromkeys([self.rev(n) for n in stop])
728 732 startrev = self.rev(start)
729 733 reachable = {startrev: 1}
730 734 heads = {startrev: 1}
@@ -733,10 +737,12 b' class revlog(object):'
733 737 for r in xrange(startrev + 1, self.count()):
734 738 for p in parentrevs(r):
735 739 if p in reachable:
736 reachable[r] = 1
740 if r not in stoprevs:
741 reachable[r] = 1
737 742 heads[r] = 1
738 if p in heads:
743 if p in heads and p not in stoprevs:
739 744 del heads[p]
745
740 746 return [self.node(r) for r in heads]
741 747
742 748 def children(self, node):
@@ -54,4 +54,9 b' hg push -r 3 -r 4 ../c; echo $?'
54 54 hg push -f -r 3 -r 4 ../c; echo $?
55 55 hg push -r 5 ../c; echo $?
56 56
57 # issue 450
58 hg init ../e
59 hg push -r 0 ../e ; echo $?
60 hg push -r 1 ../e ; echo $?
61
57 62 exit 0
@@ -62,3 +62,17 b' adding manifests'
62 62 adding file changes
63 63 added 1 changesets with 1 changes to 1 files (-1 heads)
64 64 0
65 pushing to ../e
66 searching for changes
67 adding changesets
68 adding manifests
69 adding file changes
70 added 1 changesets with 1 changes to 1 files
71 0
72 pushing to ../e
73 searching for changes
74 adding changesets
75 adding manifests
76 adding file changes
77 added 1 changesets with 1 changes to 1 files
78 0
General Comments 0
You need to be logged in to leave comments. Login now