Comments
Patch
@@ -217,10 +217,17 @@ import os
import itertools
import collections
from mercurial import revset as revsetmod
from mercurial import phases
+try:
+ from mercurial.graphmod import groupbranchiter
+except ImportError:
+ # for hg<3.3
+ def groupbranchiter(revs, *args, **kwargs):
+ """dummy function doing nothing for old version"""
+ return revs
from tortoisehg.util import obsoleteutil
LINE_TYPE_PARENT = 0
LINE_TYPE_FAMILY = 1
@@ -279,11 +286,24 @@ class StandardDag(object):
curr_rev = self.start_rev
if curr_rev is None:
if visiblerev(curr_rev):
yield repo[curr_rev]
curr_rev = len(repo) - 1
- for curr_rev in revsetmod.spanset(repo, curr_rev, stop_rev - 1):
+ revs = revsetmod.spanset(repo, curr_rev, stop_rev - 1)
+ # jump in the branch grouping graph experiment if the user subscribed
+ if repo.ui.configbool('experimental', 'graph-group-branches', False):
+ revs = list(groupbranchiter(revs, repo.changelog.parentrevs))
+ firstbranch = ()
+ firstbranchrevset = repo.ui.config('experimental',
+ 'graph-group-branches.firstbranch',
+ '')
+ if firstbranchrevset:
+ firstbranch = repo.revs(firstbranchrevset)
+ parentrevs = repo.changelog.parentrevs
+ revs = list(groupbranchiter(revs, parentrevs, firstbranch))
+
+ for curr_rev in revs:
if visiblerev(curr_rev):
yield repo[curr_rev]
def _append_graft_source(self, ctx, parents):
src_rev_str = ctx.extra().get('source')