[PATCH 7 of 7] obsolete: display debug information about an obsolet changeset
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Mon May 14 11:10:28 CDT 2012
# HG changeset patch
# User Pierre-Yves.David at ens-lyon.org
# Date 1337005240 -7200
# Node ID 70413a149e98f5cf860d956bd3858d2e809cccb7
# Parent 24f1d1c09ad14226025c60a02b12a4cbf6908b8d
obsolete: display debug information about an obsolet changeset
Debug information are added to show obsolete marker related to a changeset.
(Labels are subject to change)
diff -r 24f1d1c09ad1 -r 70413a149e98 mercurial/cmdutil.py
--- a/mercurial/cmdutil.py Mon May 14 17:42:54 2012 +0200
+++ b/mercurial/cmdutil.py Mon May 14 16:20:40 2012 +0200
@@ -698,6 +698,28 @@
for parent in parents:
self.ui.write(_("parent: %d:%s\n") % parent,
label='log.parent')
+ # get attr because this could be a file context
+ if (self.ui.debug and util.safehasattr(ctx, 'obsolete')):
+ # get nodemap to check if we have this changeset locally
+ nm = self.repo.changelog.nodemap
+ for marker in ctx.replmarkers():
+ odate = util.datestr(marker.date())
+ user = marker.metadata()['user']
+ self.ui.debug("newer-at: %s by %s\n" % (odate, user))
+ obsn = marker.obsnode()
+ obsr = nm.get(obsn)
+ if obsr is None:
+ obsr = '?'
+ self.ui.debug("newer-of: %s:%s\n" % (obsr, hex(obsn)))
+ for marker in ctx.obsmarkers():
+ msg = "obsolete-at: %s by %s\n"
+ odate = util.datestr(marker.date())
+ self.ui.debug(msg % (odate, marker.metadata()['user']))
+ for rpn in marker.replnodes():
+ rpr = nm.get(rpn)
+ if rpr is None:
+ rpr = '?'
+ self.ui.debug("obsolete-of: %s:%s\n" % (rpr, hex(rpn)))
if self.ui.debugflag:
mnode = ctx.manifestnode()
diff -r 24f1d1c09ad1 -r 70413a149e98 tests/test-obsolete.t
--- a/tests/test-obsolete.t Mon May 14 17:42:54 2012 +0200
+++ b/tests/test-obsolete.t Mon May 14 16:20:40 2012 +0200
@@ -18,6 +18,22 @@
$ hg debugmarkeradd -d '0 0' `getid kill_me` -u babar
$ hg debugmarkerlist
97b7c2d76b1845ed3eb988cd612611e72406cef0 0 {'date': '0 0', 'user': 'babar'}
+ $ hg log --debug -r "desc('kill_me')"
+ changeset: 0:97b7c2d76b1845ed3eb988cd612611e72406cef0
+ tag: tip
+ phase: draft
+ parent: -1:0000000000000000000000000000000000000000
+ parent: -1:0000000000000000000000000000000000000000
+ obsolete-at: Thu Jan 01 00:00:00 1970 +0000 by babar
+ manifest: 0:e0118fdce072635517f5b720b93e0afb30ea7a29
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ files+: kill_me
+ extra: branch=default
+ description:
+ add kill_me
+
+
$ cd ..
Killing a single changeset with replacement
@@ -34,6 +50,39 @@
$ hg debugmarkeradd `getid original_c` `getid new_c` -d '56 12'
$ hg debugmarkerlist
245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
+ $ hg log --debug -r "desc('original_c')"
+ changeset: 2:245bde4270cd1072a27757984f9cda8ba26f08ca
+ phase: draft
+ parent: 1:7c3bad9141dcb46ff89abf5f61856facd56e476c
+ parent: -1:0000000000000000000000000000000000000000
+ obsolete-at: Thu Jan 01 00:00:44 1970 -0000 by test
+ obsolete-of: 3:cdbce2fbb16313928851e97e0d85413f3f7eb77f
+ manifest: 2:1bb50d177b665d9d0c361d682511ba72974ea9e8
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ files+: original_c
+ extra: branch=default
+ description:
+ add original_c
+
+
+ $ hg log --debug -r "desc('new_c')"
+ changeset: 3:cdbce2fbb16313928851e97e0d85413f3f7eb77f
+ tag: tip
+ phase: draft
+ parent: 1:7c3bad9141dcb46ff89abf5f61856facd56e476c
+ parent: -1:0000000000000000000000000000000000000000
+ newer-at: Thu Jan 01 00:00:44 1970 -0000 by test
+ newer-of: 2:245bde4270cd1072a27757984f9cda8ba26f08ca
+ manifest: 3:3a5e1ecdd2f259b6cc173241158cd39d73caf62e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ files+: new_c
+ extra: branch=default
+ description:
+ add new_c
+
+
do it again (it read the obsstore before adding new changeset)
@@ -45,6 +94,52 @@
$ hg debugmarkerlist
245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
+ $ hg log --debug -r "desc('new_c')"
+ changeset: 3:cdbce2fbb16313928851e97e0d85413f3f7eb77f
+ phase: draft
+ parent: 1:7c3bad9141dcb46ff89abf5f61856facd56e476c
+ parent: -1:0000000000000000000000000000000000000000
+ newer-at: Thu Jan 01 00:00:44 1970 -0000 by test
+ newer-of: 2:245bde4270cd1072a27757984f9cda8ba26f08ca
+ obsolete-at: Thu Jan 01 00:22:17 1970 +0000 by test
+ obsolete-of: 4:ca819180edb99ed25ceafb3e9584ac287e240b00
+ manifest: 3:3a5e1ecdd2f259b6cc173241158cd39d73caf62e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ files+: new_c
+ extra: branch=default
+ description:
+ add new_c
+
+
+
+
+Add another marker that kills new_c
+
+ $ hg debugmarkeradd -d '1337 0' `getid new_c`
+ $ hg debugmarkerlist
+ 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
+ cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
+ cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '1337 0', 'user': 'test'}
+ $ hg log --debug -r "desc('new_c')"
+ changeset: 3:cdbce2fbb16313928851e97e0d85413f3f7eb77f
+ phase: draft
+ parent: 1:7c3bad9141dcb46ff89abf5f61856facd56e476c
+ parent: -1:0000000000000000000000000000000000000000
+ newer-at: Thu Jan 01 00:00:44 1970 -0000 by test
+ newer-of: 2:245bde4270cd1072a27757984f9cda8ba26f08ca
+ obsolete-at: Thu Jan 01 00:22:17 1970 +0000 by test
+ obsolete-of: 4:ca819180edb99ed25ceafb3e9584ac287e240b00
+ obsolete-at: Thu Jan 01 00:22:17 1970 +0000 by test
+ manifest: 3:3a5e1ecdd2f259b6cc173241158cd39d73caf62e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ files+: new_c
+ extra: branch=default
+ description:
+ add new_c
+
+
Register two markers with a missing node
@@ -57,8 +152,44 @@
$ hg debugmarkerlist
245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
+ cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '1337 0', 'user': 'test'}
ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
+ $ hg log --debug -r "desc('new_2_c')"
+ changeset: 4:ca819180edb99ed25ceafb3e9584ac287e240b00
+ phase: draft
+ parent: 1:7c3bad9141dcb46ff89abf5f61856facd56e476c
+ parent: -1:0000000000000000000000000000000000000000
+ newer-at: Thu Jan 01 00:22:17 1970 +0000 by test
+ newer-of: 3:cdbce2fbb16313928851e97e0d85413f3f7eb77f
+ obsolete-at: Thu Jan 01 00:22:18 1970 +0000 by test
+ obsolete-of: ?:1337133713371337133713371337133713371337
+ manifest: 4:fa0f182236cd166edc484025a015879092f3fe86
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ files+: new_2_c
+ extra: branch=default
+ description:
+ add new_2_c
+
+
+ $ hg log --debug -r "desc('new_3_c')"
+ changeset: 5:5601fb93a350734d935195fee37f4054c529ff39
+ tag: tip
+ phase: draft
+ parent: 1:7c3bad9141dcb46ff89abf5f61856facd56e476c
+ parent: -1:0000000000000000000000000000000000000000
+ newer-at: Thu Jan 01 00:22:19 1970 +0000 by test
+ newer-of: ?:1337133713371337133713371337133713371337
+ manifest: 5:119c27044acfbf09921d8f312dd369bdd840eba8
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ files+: new_3_c
+ extra: branch=default
+ description:
+ add new_3_c
+
+
$ cd ..
@@ -81,9 +212,10 @@
added 6 changesets with 6 changes to 6 files (+3 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
$ hg debugmarkerlist
+ 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
+ cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '1337 0', 'user': 'test'}
1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
$ cd ..
@@ -99,9 +231,10 @@
adding file changes
added 6 changesets with 6 changes to 6 files (+3 heads)
$ hg -R tmpd debugmarkerlist
+ 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
+ cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '1337 0', 'user': 'test'}
1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
@@ -123,9 +256,10 @@
(run 'hg heads' to see heads, 'hg merge' to merge)
$ hg debugmarkerlist
2448244824482448244824482448244824482448 1339133913391339133913391339133913391339 0 {'date': '1339 0', 'user': 'test'}
+ 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
+ cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '1337 0', 'user': 'test'}
1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
On push
@@ -136,8 +270,9 @@
no changes found
[1]
$ hg -R ../tmpc debugmarkerlist
+ 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
- 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
+ cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '1337 0', 'user': 'test'}
1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
2448244824482448244824482448244824482448 1339133913391339133913391339133913391339 0 {'date': '1339 0', 'user': 'test'}
More information about the Mercurial-devel
mailing list