Rev 4: More correct refactoring. in http://bzr.arbash-meinel.com/plugins/kndx_to_dot
John Arbash Meinel
john at arbash-meinel.com
Tue Apr 10 22:36:57 BST 2007
At http://bzr.arbash-meinel.com/plugins/kndx_to_dot
------------------------------------------------------------
revno: 4
revision-id: john at arbash-meinel.com-20070410213652-y9u56him1kmu8ksh
parent: john at arbash-meinel.com-20070410213503-9gnbqblwne0g6c4m
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: kndx_to_dot
timestamp: Tue 2007-04-10 16:36:52 -0500
message:
More correct refactoring.
modified:
__init__.py __init__.py-20070410212739-0uwundx7uoho7f6n-1
-------------- next part --------------
=== modified file '__init__.py'
--- a/__init__.py 2007-04-10 21:35:03 +0000
+++ b/__init__.py 2007-04-10 21:36:52 +0000
@@ -38,12 +38,6 @@
'.bzr/repository/inventory'.
"""
- _revision_id_re = lazy_regex.lazy_compile(
- r'(?P<user>.+)'
- r'@.*'
- r'-20(?P<date>\d{6})(?P<time>\d{6})-'
- r'.*(?P<tail>[a-z0-9]{5})$')
-
takes_args = ['path']
takes_options = [option.Option('start', type=str, argname='revid',
help='Don\'t include revision before this one.'),
@@ -74,48 +68,52 @@
except ValueError:
versions = versions[versions.index(start):]
- self.generate_dot(kndx, short, version_idxs, versions, self.outf)
-
- def make_short_name(self, version_idxs, version):
- """Convert a revision id into a shorter name.
-
- :param version_idxs: A dict mapping versions => offset
- :param version: The version to shorten.
- """
- idx = version_idxs[version]
- m = self._revision_id_re.match(version)
- if m:
- return "%s %s-%s-%s" % (idx, m.group('user'),
- m.group('date'), m.group('tail'))
- else:
- return "%s %s" % (idx, version)
-
- def generate_dot(self, kndx, short, version_idxs, versions, output):
- self.outf.write('digraph T {\n'
- ' node [shape=box]\n'
- )
- for version in versions:
- if short:
- sversion = self.make_short_name(version_idxs, version)
- else:
- sversion = version
- parents = kndx.get_parents(version)
- if short:
- sparents = [self.make_short_name(version_idxs, p)
- for p in parents]
- else:
- sparents = parents
- if not parents:
- output.write(' "%s"\n' % (sversion,))
- else:
- for sparent in sparents:
- output.write(' "%s" -> "%s"\n' % (sparent, sversion))
- # elif len(parents) == 1:
- # self.outf.write(' "%s" -> "%s"\n' % (sversion, sparents[0]))
- # else:
- # sparents = ' '.join('"%s"' % p for p in sparents)
- # self.outf.write(' "%s" -> {%s}\n' % (sversion, sparents))
- output.write('}\n')
+ generate_dot(kndx, short, version_idxs, versions, self.outf)
+
+
+_short_revision_id_re = lazy_regex.lazy_compile(
+ r'(?P<user>.+)'
+ r'@.*'
+ r'-20(?P<date>\d{6})(?P<time>\d{6})-'
+ r'.*(?P<tail>[a-z0-9]{5})$')
+
+
+def make_short_name(version_idxs, version):
+ """Convert a revision id into a shorter name.
+
+ :param version_idxs: A dict mapping versions => offset
+ :param version: The version to shorten.
+ """
+ idx = version_idxs[version]
+ m = _short_revision_id_re.match(version)
+ if m:
+ return "%s %s-%s-%s" % (idx, m.group('user'),
+ m.group('date'), m.group('tail'))
+ else:
+ return "%s %s" % (idx, version)
+
+
+def generate_dot(kndx, short, version_idxs, versions, output):
+ output.write('digraph T {\n'
+ ' node [shape=box]\n'
+ )
+ for version in versions:
+ if short:
+ sversion = make_short_name(version_idxs, version)
+ else:
+ sversion = version
+ parents = kndx.get_parents(version)
+ if short:
+ sparents = [make_short_name(version_idxs, p)
+ for p in parents]
+ else:
+ sparents = parents
+ if not parents:
+ output.write(' "%s"\n' % (sversion,))
+ else:
+ for sparent in sparents:
+ output.write(' "%s" -> "%s"\n' % (sparent, sversion))
+ output.write('}\n')
commands.register_command(cmd_kndx2dot)
More information about the bazaar-commits
mailing list