Skip to content
Snippets Groups Projects
Commit 3fc95c3b authored by Benoit Boissinot's avatar Benoit Boissinot
Browse files

shrink-revlog: factor out suboptimal computation

parent add562ab
No related branches found
No related tags found
No related merge requests found
......@@ -56,7 +56,6 @@
visit = list(heads)
visit.sort(reverse=True)
finished = set()
suboptimal = 0
while visit:
cur = visit[-1]
......@@ -65,11 +64,7 @@
visit.append(p)
break
else:
curparents = rl.parentrevs(cur)
if result and result[-1] != curparents[0]:
suboptimal += 1
result.append(cur)
finished.add(cur)
visit.pop()
......@@ -72,9 +67,7 @@
result.append(cur)
finished.add(cur)
visit.pop()
ui.note(_('%d suboptimal nodes\n') % suboptimal)
return result
def toposort_postorderreverse(ui, rl):
......@@ -104,7 +97,6 @@
visit = list(roots)
visit.sort()
finished = set()
suboptimal = 0
while visit:
cur = visit[-1]
......@@ -113,14 +105,7 @@
visit.append(p)
break
else:
# if cur is not the first parent of its successor, then the
# successor is a suboptimal node
if result:
succparents = rl.parentrevs(result[-1])
if succparents[0] != cur:
suboptimal += 1
result.append(cur)
finished.add(cur)
visit.pop()
......@@ -123,9 +108,7 @@
result.append(cur)
finished.add(cur)
visit.pop()
ui.note(_('%d suboptimal nodes\n') % suboptimal)
result.reverse()
return result
......@@ -259,6 +242,15 @@
try:
try:
order = toposort(ui, r1)
suboptimal = 0
for i in xrange(1, len(order)):
parents = [p for p in r1.parentrevs(order[i])
if p != node.nullrev]
if parents and order[i-1] not in parents:
suboptimal += 1
ui.note(_('%d suboptimal nodes\n') % suboptimal)
writerevs(ui, r1, r2, order, tr)
report(ui, r1, r2)
tr.close()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment