mirror of
https://github.com/facebook/sapling.git
synced 2024-10-08 15:57:43 +03:00
Sync with -stable
This commit is contained in:
commit
887599574c
1
.hgsigs
1
.hgsigs
@ -1,3 +1,4 @@
|
||||
35fb62a3a673d5322f6274a44ba6456e5e4b3b37 0 iD8DBQBEYmO2ywK+sNU5EO8RAnaYAKCO7x15xUn5mnhqWNXqk/ehlhRt2QCfRDfY0LrUq2q4oK/KypuJYPHgq1A=
|
||||
2be3001847cb18a23c403439d9e7d0ace30804e9 0 iD8DBQBExUbjywK+sNU5EO8RAhzxAKCtyHAQUzcTSZTqlfJ0by6vhREwWQCghaQFHfkfN0l9/40EowNhuMOKnJk=
|
||||
36a957364b1b89c150f2d0e60a99befe0ee08bd3 0 iD8DBQBFfL2QywK+sNU5EO8RAjYFAKCoGlaWRTeMsjdmxAjUYx6diZxOBwCfY6IpBYsKvPTwB3oktnPt5Rmrlys=
|
||||
27230c29bfec36d5540fbe1c976810aefecfd1d2 0 iD8DBQBFheweywK+sNU5EO8RAt7VAKCrqJQWT2/uo2RWf0ZI4bLp6v82jACgjrMdsaTbxRsypcmEsdPhlG6/8F4=
|
||||
|
@ -1284,7 +1284,7 @@ class localrepository(repo.repository):
|
||||
newheads = list(heads)
|
||||
for r in remote_heads:
|
||||
if r in self.changelog.nodemap:
|
||||
desc = self.changelog.heads(r)
|
||||
desc = self.changelog.heads(r, heads)
|
||||
l = [h for h in heads if h in desc]
|
||||
if not l:
|
||||
newheads.append(r)
|
||||
|
@ -716,15 +716,19 @@ class revlog(object):
|
||||
assert heads
|
||||
return (orderedout, roots, heads)
|
||||
|
||||
def heads(self, start=None):
|
||||
def heads(self, start=None, stop=None):
|
||||
"""return the list of all nodes that have no children
|
||||
|
||||
if start is specified, only heads that are descendants of
|
||||
start will be returned
|
||||
|
||||
if stop is specified, it will consider all the revs from stop
|
||||
as if they had no children
|
||||
"""
|
||||
if start is None:
|
||||
start = nullid
|
||||
if stop is None:
|
||||
stop = []
|
||||
stoprevs = dict.fromkeys([self.rev(n) for n in stop])
|
||||
startrev = self.rev(start)
|
||||
reachable = {startrev: 1}
|
||||
heads = {startrev: 1}
|
||||
@ -733,10 +737,12 @@ class revlog(object):
|
||||
for r in xrange(startrev + 1, self.count()):
|
||||
for p in parentrevs(r):
|
||||
if p in reachable:
|
||||
reachable[r] = 1
|
||||
if r not in stoprevs:
|
||||
reachable[r] = 1
|
||||
heads[r] = 1
|
||||
if p in heads:
|
||||
if p in heads and p not in stoprevs:
|
||||
del heads[p]
|
||||
|
||||
return [self.node(r) for r in heads]
|
||||
|
||||
def children(self, node):
|
||||
|
@ -54,4 +54,9 @@ hg push -r 3 -r 4 ../c; echo $?
|
||||
hg push -f -r 3 -r 4 ../c; echo $?
|
||||
hg push -r 5 ../c; echo $?
|
||||
|
||||
# issue 450
|
||||
hg init ../e
|
||||
hg push -r 0 ../e ; echo $?
|
||||
hg push -r 1 ../e ; echo $?
|
||||
|
||||
exit 0
|
||||
|
@ -62,3 +62,17 @@ adding manifests
|
||||
adding file changes
|
||||
added 1 changesets with 1 changes to 1 files (-1 heads)
|
||||
0
|
||||
pushing to ../e
|
||||
searching for changes
|
||||
adding changesets
|
||||
adding manifests
|
||||
adding file changes
|
||||
added 1 changesets with 1 changes to 1 files
|
||||
0
|
||||
pushing to ../e
|
||||
searching for changes
|
||||
adding changesets
|
||||
adding manifests
|
||||
adding file changes
|
||||
added 1 changesets with 1 changes to 1 files
|
||||
0
|
||||
|
Loading…
Reference in New Issue
Block a user