man pages: Bugfixed man pages for --sign and --ack flags; e.g., for stg-new
[stgit] / perf / find_patchbomb.py
1 # Feed this with git rev-list HEAD --parents
2
3 import sys
4
5 parents = {}
6 for line in sys.stdin.readlines():
7 commits = line.split()
8 parents[commits[0]] = commits[1:]
9
10 sequence_num = {}
11 stack = []
12 for commit in parents.keys():
13 stack.append(commit)
14 while stack:
15 c = stack.pop()
16 if c in sequence_num:
17 continue
18 ps = parents[c]
19 if len(ps) == 1:
20 p = ps[0]
21 if p in sequence_num:
22 sequence_num[c] = 1 + sequence_num[p]
23 else:
24 stack.append(c)
25 stack.append(p)
26 else:
27 sequence_num[c] = 0
28
29 (num, commit) = max((num, commit) for (commit, num)
30 in sequence_num.iteritems())
31 print '%s is a sequence of %d patches' % (commit, num)