[PATCH 04 of 11] debugbundle: display the content of obsmarkers parts
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Sun May 28 12:32:05 EDT 2017
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at octobus.net>
# Date 1495723846 -7200
# Thu May 25 16:50:46 2017 +0200
# Node ID a4da14c3c095bf4f566c655cb4a82dc3b1ccd5e9
# Parent b97c492388f6b14c346600e1c1ed4e400f6b47ca
# EXP-Topic obsstrip
# Available At https://www.mercurial-scm.org/repo/users/marmoute/mercurial/
# hg pull https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ -r a4da14c3c095
debugbundle: display the content of obsmarkers parts
We parse and display the markers in the part when possible.
diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py
--- a/mercurial/debugcommands.py
+++ b/mercurial/debugcommands.py
@@ -288,6 +288,27 @@ def _debugchangegroup(ui, gen, all=None,
ui.write("%s%s\n" % (indent_string, hex(node)))
chain = node
+def _debugobsmarkers(ui, data, all=None, indent=0, **opts):
+ """display version and markers contained in 'data'"""
+ indent_string = ' ' * indent
+ try:
+ version, markers = obsolete._readmarkers(data)
+ except error.UnknownVersion as exc:
+ msg = "%sunsupported version: %s (%d bytes)\n"
+ msg %= indent_string, exc.version, len(data)
+ ui.write(msg)
+ else:
+ msg = "%sversion: %s (%d bytes)\n"
+ msg %= indent_string, version, len(data)
+ ui.write(msg)
+ fm = ui.formatter('debugobsolete', opts)
+ for rawmarker in sorted(markers):
+ m = obsolete.marker(None, rawmarker)
+ fm.startitem()
+ fm.plain(indent_string)
+ cmdutil.showmarker(fm, m)
+ fm.end()
+
def _debugbundle2(ui, gen, all=None, **opts):
"""lists the contents of a bundle2"""
if not isinstance(gen, bundle2.unbundle20):
@@ -299,6 +320,8 @@ def _debugbundle2(ui, gen, all=None, **o
version = part.params.get('version', '01')
cg = changegroup.getunbundler(version, part, 'UN')
_debugchangegroup(ui, cg, all=all, indent=4, **opts)
+ if part.type == 'obsmarkers':
+ _debugobsmarkers(ui, part.read(), all=all, indent=4, **opts)
@command('debugbundle',
[('a', 'all', None, _('show all details')),
diff --git a/tests/test-obsolete-changeset-exchange.t b/tests/test-obsolete-changeset-exchange.t
--- a/tests/test-obsolete-changeset-exchange.t
+++ b/tests/test-obsolete-changeset-exchange.t
@@ -97,6 +97,8 @@ check-that bundle can contains markers:
changegroup -- "sortdict([('version', '02'), ('nbchanges', '1')])"
f89bcc95eba5174b1ccc3e33a82e84c96e8338ee
obsmarkers -- 'sortdict()'
+ version: 1 (70 bytes)
+ 9d73aac1b2ed7d53835eaeec212ed41ea47da53a f89bcc95eba5174b1ccc3e33a82e84c96e8338ee 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
$ cd ..
More information about the Mercurial-devel
mailing list