changeset 22272:406181ee335f

debugobsolete: add a way to record parent information We add a ``--record-parents`` flag to debugobsolete. This can be used to record parent information in the marker when the precursors are known locally. This will be useful to test the "relevant markers" computation.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Wed, 20 Aug 2014 00:43:08 -0700
parents 8c69262df82d
children e6d01239f779
files mercurial/commands.py tests/test-completion.t tests/test-obsolete.t
diffstat 3 files changed, 16 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py	Tue Aug 19 17:03:10 2014 -0700
+++ b/mercurial/commands.py	Wed Aug 20 00:43:08 2014 -0700
@@ -2308,6 +2308,8 @@
 
 @command('debugobsolete',
         [('', 'flags', 0, _('markers flag')),
+         ('', 'record-parents', False,
+          _('record parent information for the precursor')),
         ] + commitopts2,
          _('[OBSOLETED [REPLACEMENT] [REPL... ]'))
 def debugobsolete(ui, repo, precursor=None, *successors, **opts):
@@ -2342,8 +2344,16 @@
                         date = util.parsedate(date)
                     else:
                         date = None
-                    repo.obsstore.create(tr, parsenodeid(precursor), succs,
-                                         opts['flags'], date=date,
+                    prec = parsenodeid(precursor)
+                    parents = None
+                    if opts['record_parents']:
+                        if prec not in repo.unfiltered():
+                            raise util.Abort('cannot used --record-parents on '
+                                             'unknown changesets')
+                        parents = repo.unfiltered()[prec].parents()
+                        parents = tuple(p.node() for p in parents)
+                    repo.obsstore.create(tr, prec, succs, opts['flags'],
+                                         parents=parents, date=date,
                                          metadata=metadata)
                     tr.close()
                 except ValueError, exc:
--- a/tests/test-completion.t	Tue Aug 19 17:03:10 2014 -0700
+++ b/tests/test-completion.t	Wed Aug 20 00:43:08 2014 -0700
@@ -244,7 +244,7 @@
   debuginstall: 
   debugknown: 
   debuglabelcomplete: 
-  debugobsolete: flags, date, user
+  debugobsolete: flags, record-parents, date, user
   debugpathcomplete: full, normal, added, removed
   debugpushkey: 
   debugpvec: 
--- a/tests/test-obsolete.t	Tue Aug 19 17:03:10 2014 -0700
+++ b/tests/test-obsolete.t	Wed Aug 20 00:43:08 2014 -0700
@@ -417,7 +417,9 @@
   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ mkcommit original_d
   $ mkcommit original_e
-  $ hg debugobsolete `getid original_d` -d '0 0'
+  $ hg debugobsolete --record-parents `getid original_d` -d '0 0'
+  $ hg debugobsolete | grep `getid original_d`
+  94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
   $ hg log -r 'obsolete()'
   4:94b33453f93b (draft) [ ] add original_d
   $ hg log -G -r '::unstable()'