diff options
author | Daniel Silverstone <daniel.silverstone@codethink.co.uk> | 2012-09-27 14:30:31 +0100 |
---|---|---|
committer | Daniel Silverstone <daniel.silverstone@codethink.co.uk> | 2012-09-27 14:30:31 +0100 |
commit | 4b0aa73b8c69bd5b7521337809f7bc4714209a5a (patch) | |
tree | 75f4c36771caf222280249cd1ed611d5ade8bd48 /tests/svnxml.py | |
parent | 59a96880b5d035db83067acda8345497c75d7716 (diff) | |
parent | 921ced43c48c1d170452a7b251b94cc96ec8dd44 (diff) | |
download | mercurial-tarball-baserock/morph.tar.gz |
Merge remote-tracking branch 'origin/master' into baserock/morphbaserock/morph
This changes us to 1.9.3 which might stand a better chance of being
usable by Lorry.
We also undo the setup.py change because python now supports bz2
Diffstat (limited to 'tests/svnxml.py')
-rw-r--r-- | tests/svnxml.py | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/tests/svnxml.py b/tests/svnxml.py deleted file mode 100644 index b3b2b63..0000000 --- a/tests/svnxml.py +++ /dev/null @@ -1,51 +0,0 @@ -# Read the output of a "svn log --xml" command on stdin, parse it and -# print a subset of attributes common to all svn versions tested by -# hg. -import xml.dom.minidom, sys - -def xmltext(e): - return ''.join(c.data for c - in e.childNodes - if c.nodeType == c.TEXT_NODE) - -def parseentry(entry): - e = {} - e['revision'] = entry.getAttribute('revision') - e['author'] = xmltext(entry.getElementsByTagName('author')[0]) - e['msg'] = xmltext(entry.getElementsByTagName('msg')[0]) - e['paths'] = [] - paths = entry.getElementsByTagName('paths') - if paths: - paths = paths[0] - for p in paths.getElementsByTagName('path'): - action = p.getAttribute('action') - path = xmltext(p) - frompath = p.getAttribute('copyfrom-path') - fromrev = p.getAttribute('copyfrom-rev') - e['paths'].append((path, action, frompath, fromrev)) - return e - -def parselog(data): - entries = [] - doc = xml.dom.minidom.parseString(data) - for e in doc.getElementsByTagName('logentry'): - entries.append(parseentry(e)) - return entries - -def printentries(entries): - fp = sys.stdout - for e in entries: - for k in ('revision', 'author', 'msg'): - fp.write(('%s: %s\n' % (k, e[k])).encode('utf-8')) - for path, action, fpath, frev in sorted(e['paths']): - frominfo = '' - if frev: - frominfo = ' (from %s@%s)' % (fpath, frev) - p = ' %s %s%s\n' % (action, path, frominfo) - fp.write(p.encode('utf-8')) - -if __name__ == '__main__': - data = sys.stdin.read() - entries = parselog(data) - printentries(entries) - |