Mercurial > python-hglib
annotate examples/stats.py @ 194:22767a1e61ac
client: make it robust for weird repository path
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 11 Nov 2017 20:35:55 +0900 |
parents | 031cbb8d4f65 |
children |
rev | line source |
---|---|
78
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
1 # stats - get stats on the given repo |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
2 |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
3 import sys |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
4 import hglib |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
5 |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
6 # figure out what repo path to use |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
7 repo = '.' |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
8 if len(sys.argv) > 1: |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
9 repo = sys.argv[1] |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
10 |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
11 # connect to hg |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
12 client = hglib.open(repo) |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
13 |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
14 # gather some stats |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
15 revs = int(client.tip().rev) |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
16 files = len(list(client.manifest())) |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
17 heads = len(client.heads()) |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
18 branches = len(client.branches()) |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
19 tags = len(client.tags()) - 1 # don't count tip |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
20 |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
21 authors = {} |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
22 for e in client.log(): |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
23 authors[e.author] = True |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
24 |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
25 merges = 0 |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
26 for e in client.log(onlymerges=True): |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
27 merges += 1 |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
28 |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
29 print "%d revisions" % revs |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
30 print "%d merges" % merges |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
31 print "%d files" % files |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
32 print "%d heads" % heads |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
33 print "%d branches" % branches |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
34 print "%d tags" % tags |
031cbb8d4f65
examples: add simple stat-gathering example
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
35 print "%d authors" % len(authors) |