mercurial/graphmod.py
branchstable
changeset 12951 101366ad816c
parent 10602 94145b531cf9
child 14042 9966c95b8c4f
equal deleted inserted replaced
12950:2405b4a5964a 12951:101366ad816c
    30     integers which identify a node in the context of the graph returned.
    30     integers which identify a node in the context of the graph returned.
    31     """
    31     """
    32     cur = start
    32     cur = start
    33     while cur >= stop:
    33     while cur >= stop:
    34         ctx = repo[cur]
    34         ctx = repo[cur]
    35         parents = [p.rev() for p in ctx.parents() if p.rev() != nullrev]
    35         parents = set([p.rev() for p in ctx.parents() if p.rev() != nullrev])
    36         yield (cur, CHANGESET, ctx, sorted(parents))
    36         yield (cur, CHANGESET, ctx, sorted(parents))
    37         cur -= 1
    37         cur -= 1
    38 
    38 
    39 def filerevs(repo, path, start, stop, limit=None):
    39 def filerevs(repo, path, start, stop, limit=None):
    40     """file cset DAG generator yielding (id, CHANGESET, ctx, [parentids]) tuples
    40     """file cset DAG generator yielding (id, CHANGESET, ctx, [parentids]) tuples
    45     filerev = len(repo.file(path)) - 1
    45     filerev = len(repo.file(path)) - 1
    46     rev = stop + 1
    46     rev = stop + 1
    47     count = 0
    47     count = 0
    48     while filerev >= 0 and rev > stop:
    48     while filerev >= 0 and rev > stop:
    49         fctx = repo.filectx(path, fileid=filerev)
    49         fctx = repo.filectx(path, fileid=filerev)
    50         parents = [f.linkrev() for f in fctx.parents() if f.path() == path]
    50         parents = set([f.linkrev() for f in fctx.parents() if f.path() == path])
    51         rev = fctx.rev()
    51         rev = fctx.rev()
    52         if rev <= start:
    52         if rev <= start:
    53             yield (rev, CHANGESET, fctx.changectx(), sorted(parents))
    53             yield (rev, CHANGESET, fctx.changectx(), sorted(parents))
    54             count += 1
    54             count += 1
    55             if count == limit:
    55             if count == limit:
    63     that are in nodes, too.
    63     that are in nodes, too.
    64     """
    64     """
    65     include = set(nodes)
    65     include = set(nodes)
    66     for node in nodes:
    66     for node in nodes:
    67         ctx = repo[node]
    67         ctx = repo[node]
    68         parents = [p.rev() for p in ctx.parents() if p.node() in include]
    68         parents = set([p.rev() for p in ctx.parents() if p.node() in include])
    69         yield (ctx.rev(), CHANGESET, ctx, sorted(parents))
    69         yield (ctx.rev(), CHANGESET, ctx, sorted(parents))
    70 
    70 
    71 def colored(dag):
    71 def colored(dag):
    72     """annotates a DAG with colored edge information
    72     """annotates a DAG with colored edge information
    73 
    73