[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