Mercurial > public > mercurial-scm > hg-stable
comparison tests/svnxml.py @ 41351:7c54357be2ae
tests: normalize XML values to bytes
This fixes some type mismatches. The encoding shouldn't matter
for what this script is used for. UTF-8 seems reasonable, especially
since I'm pretty sure SVN will emit UTF-8 encoded XML.
Differential Revision: https://phab.mercurial-scm.org/D5665
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 23 Jan 2019 16:22:54 -0800 |
parents | c17d73bf6a4d |
children | 2372284d9457 |
comparison
equal
deleted
inserted
replaced
41350:eff0a7d3229c | 41351:7c54357be2ae |
---|---|
18 e['paths'] = [] | 18 e['paths'] = [] |
19 paths = entry.getElementsByTagName('paths') | 19 paths = entry.getElementsByTagName('paths') |
20 if paths: | 20 if paths: |
21 paths = paths[0] | 21 paths = paths[0] |
22 for p in paths.getElementsByTagName('path'): | 22 for p in paths.getElementsByTagName('path'): |
23 action = p.getAttribute('action') | 23 action = p.getAttribute('action').encode('utf-8') |
24 path = xmltext(p) | 24 path = xmltext(p).encode('utf-8') |
25 frompath = p.getAttribute('copyfrom-path') | 25 frompath = p.getAttribute('copyfrom-path').encode('utf-8') |
26 fromrev = p.getAttribute('copyfrom-rev') | 26 fromrev = p.getAttribute('copyfrom-rev').encode('utf-8') |
27 e['paths'].append((path, action, frompath, fromrev)) | 27 e['paths'].append((path, action, frompath, fromrev)) |
28 return e | 28 return e |
29 | 29 |
30 def parselog(data): | 30 def parselog(data): |
31 entries = [] | 31 entries = [] |
41 fp = sys.stdout | 41 fp = sys.stdout |
42 for e in entries: | 42 for e in entries: |
43 for k in ('revision', 'author', 'msg'): | 43 for k in ('revision', 'author', 'msg'): |
44 fp.write(('%s: %s\n' % (k, e[k])).encode('utf-8')) | 44 fp.write(('%s: %s\n' % (k, e[k])).encode('utf-8')) |
45 for path, action, fpath, frev in sorted(e['paths']): | 45 for path, action, fpath, frev in sorted(e['paths']): |
46 frominfo = '' | 46 frominfo = b'' |
47 if frev: | 47 if frev: |
48 frominfo = ' (from %s@%s)' % (fpath, frev) | 48 frominfo = b' (from %s@%s)' % (fpath, frev) |
49 p = ' %s %s%s\n' % (action, path, frominfo) | 49 p = b' %s %s%s\n' % (action, path, frominfo) |
50 fp.write(p.encode('utf-8')) | 50 fp.write(p) |
51 | 51 |
52 if __name__ == '__main__': | 52 if __name__ == '__main__': |
53 data = sys.stdin.read() | 53 data = sys.stdin.read() |
54 entries = parselog(data) | 54 entries = parselog(data) |
55 printentries(entries) | 55 printentries(entries) |