Mercurial > public > mercurial-scm > hg-stable
comparison tests/artifacts/scripts/generate-churning-bundle.py @ 51152:d7155949535e stable
generate-churning-bundle: fix script for python3
This script has apparently not run for a long time.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sat, 18 Nov 2023 00:16:15 +0100 |
parents | 6000f5b25c9b |
children | 599c696bb514 |
comparison
equal
deleted
inserted
replaced
51151:85d96517e650 | 51152:d7155949535e |
---|---|
44 OTHER_CHANGES = 300 | 44 OTHER_CHANGES = 300 |
45 | 45 |
46 | 46 |
47 def nextcontent(previous_content): | 47 def nextcontent(previous_content): |
48 """utility to produce a new file content from the previous one""" | 48 """utility to produce a new file content from the previous one""" |
49 return hashlib.md5(previous_content).hexdigest() | 49 return hashlib.md5(previous_content).hexdigest().encode('ascii') |
50 | 50 |
51 | 51 |
52 def filecontent(iteridx, oldcontent): | 52 def filecontent(iteridx, oldcontent): |
53 """generate a new file content | 53 """generate a new file content |
54 | 54 |
55 The content is generated according the iteration index and previous | 55 The content is generated according the iteration index and previous |
56 content""" | 56 content""" |
57 | 57 |
58 # initial call | 58 # initial call |
59 if iteridx is None: | 59 if iteridx is None: |
60 current = '' | 60 current = b'' |
61 else: | 61 else: |
62 current = str(iteridx) | 62 current = b"%d" % iteridx |
63 | 63 |
64 for idx in range(NB_LINES): | 64 for idx in range(NB_LINES): |
65 do_change_line = True | 65 do_change_line = True |
66 if oldcontent is not None and ALWAYS_CHANGE_LINES < idx: | 66 if oldcontent is not None and ALWAYS_CHANGE_LINES < idx: |
67 do_change_line = not ((idx - iteridx) % OTHER_CHANGES) | 67 do_change_line = not ((idx - iteridx) % OTHER_CHANGES) |
68 | 68 |
69 if do_change_line: | 69 if do_change_line: |
70 to_write = current + '\n' | 70 to_write = current + b'\n' |
71 current = nextcontent(current) | 71 current = nextcontent(current) |
72 else: | 72 else: |
73 to_write = oldcontent[idx] | 73 to_write = oldcontent[idx] |
74 yield to_write | 74 yield to_write |
75 | 75 |
125 hg('bundle', '--all', target, '--config', 'devel.bundle.delta=p1') | 125 hg('bundle', '--all', target, '--config', 'devel.bundle.delta=p1') |
126 with open(target, 'rb') as bundle: | 126 with open(target, 'rb') as bundle: |
127 data = bundle.read() | 127 data = bundle.read() |
128 digest = hashlib.md5(data).hexdigest() | 128 digest = hashlib.md5(data).hexdigest() |
129 with open(target + '.md5', 'wb') as md5file: | 129 with open(target + '.md5', 'wb') as md5file: |
130 md5file.write(digest + '\n') | 130 md5file.write(digest.encode('ascii') + b'\n') |
131 if sys.stdout.isatty(): | 131 if sys.stdout.isatty(): |
132 print('bundle generated at "%s" md5: %s' % (target, digest)) | 132 print('bundle generated at "%s" md5: %s' % (target, digest)) |
133 | 133 |
134 finally: | 134 finally: |
135 shutil.rmtree(tmpdir) | 135 shutil.rmtree(tmpdir) |