Commit | Line | Data |
---|---|---|
5200ae3c KH |
1 | next_mark = 1 |
2 | def get_mark(): | |
3 | global next_mark | |
4 | next_mark += 1 | |
5 | return (next_mark - 1) | |
6 | ||
7 | def write_data(s): | |
8 | print 'data %d' % len(s) | |
9 | print s | |
10 | ||
11 | def write_blob(s): | |
12 | print 'blob' | |
13 | m = get_mark() | |
14 | print 'mark :%d' % m | |
15 | write_data(s) | |
16 | return m | |
17 | ||
18 | def write_commit(branch, files, msg, parent = None): | |
19 | print 'commit %s' % branch | |
20 | m = get_mark() | |
21 | print 'mark :%d' % m | |
22 | auth = 'X Ample <xa@example.com> %d +0000' % (1000000000 + m) | |
23 | print 'author %s' % auth | |
24 | print 'committer %s' % auth | |
25 | write_data(msg) | |
26 | if parent != None: | |
27 | print 'from :%d' % parent | |
28 | for fn, fm in sorted(files.iteritems()): | |
29 | print 'M 100644 :%d %s' % (fm, fn) | |
30 | return m | |
31 | ||
32 | def set_ref(ref, mark): | |
33 | print 'reset %s' % ref | |
34 | print 'from :%d' % mark | |
35 | ||
36 | def stdblob(fn): | |
37 | return ''.join('%d %s\n' % (x, fn) for x in xrange(10)) | |
38 | ||
39 | def iter_paths(): | |
40 | for i in xrange(32): | |
41 | for j in xrange(32): | |
42 | for k in xrange(32): | |
43 | yield '%02d/%02d/%02d' % (i, j, k) | |
44 | ||
45 | def setup(): | |
46 | def t(name): return 'refs/tags/%s' % name | |
47 | files = dict((fn, write_blob(stdblob(fn))) for fn in iter_paths()) | |
48 | initial = write_commit(t('bomb-base'), files, 'Initial commit') | |
49 | set_ref(t('bomb-top'), initial) | |
50 | for fn in iter_paths(): | |
51 | write_commit(t('bomb-top'), | |
52 | { fn: write_blob(stdblob(fn) + 'Last line\n') }, | |
53 | 'Add last line to %s' % fn) | |
54 | write_commit(t('add-file'), { 'woo-hoo.txt': write_blob('woo-hoo\n') }, | |
55 | 'Add a new file', parent = initial) | |
56 | files = dict((fn, write_blob('First line\n' + stdblob(fn))) | |
57 | for fn in iter_paths()) | |
58 | write_commit(t('modify-all'), files, 'Add first line to all files', | |
59 | parent = initial) | |
60 | ||
61 | setup() |