diff -r 51e6f318bdf1 -r 0d175ac527c1 mercurial/commands.py --- a/mercurial/commands.py Fri Mar 09 17:11:07 2012 +0100 +++ b/mercurial/commands.py Mon Mar 12 13:37:39 2012 -0500 @@ -16,7 +16,7 @@ import merge as mergemod import minirst, revset, fileset import dagparser, context, simplemerge -import random, setdiscovery, treediscovery, dagutil +import random, setdiscovery, treediscovery, dagutil, pvec import phases table = {} @@ -1963,6 +1963,27 @@ ui.write("%s\t%s\n" % (k.encode('string-escape'), v.encode('string-escape'))) +@command('debugpvec', [], _('A B')) +def debugpvec(ui, repo, a, b=None): + ca = scmutil.revsingle(repo, a) + cb = scmutil.revsingle(repo, b) + pa = pvec.ctxpvec(ca) + pb = pvec.ctxpvec(cb) + if pa == pb: + rel = "=" + elif pa > pb: + rel = ">" + elif pa < pb: + rel = "<" + elif pa | pb: + rel = "|" + ui.write(_("a: %s\n") % pa) + ui.write(_("b: %s\n") % pb) + ui.write(_("depth(a): %d depth(b): %d\n") % (pa._depth, pb._depth)) + ui.write(_("delta: %d hdist: %d distance: %d relation: %s\n") % + (abs(pa._depth - pb._depth), pvec._hamming(pa._vec, pb._vec), + pa.distance(pb), rel)) + @command('debugrebuildstate', [('r', 'rev', '', _('revision to rebuild to'), _('REV'))], _('[-r REV] [REV]'))