Add debugsetparents command
authorMatt Mackall <mpm@selenic.com>
Tue, 18 Oct 2005 00:43:33 -0700
changeset 1395 c2eb204917f8
parent 1394 b20b683e8d95
child 1396 8c3e2a254257
Add debugsetparents command
mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -836,6 +836,19 @@ def debugconfig(ui):
     for section, name, value in ui.walkconfig():
         ui.write('%s.%s=%s\n' % (section, name, value))
 
+def debugsetparents(ui, repo, rev1, rev2=None):
+    """
+    manually set the parents of the current working directory
+
+    This is useful for writing repository conversion tools, but should
+    be used with care.
+    """
+
+    if not rev2:
+        rev2 = hex(nullid)
+
+    repo.dirstate.setparents(repo.lookup(rev1), repo.lookup(rev2))
+
 def debugstate(ui, repo):
     """show the contents of the current dirstate"""
     repo.dirstate.read()
@@ -1811,6 +1824,7 @@ table = {
     "debugancestor": (debugancestor, [], 'debugancestor INDEX REV1 REV2'),
     "debugcheckstate": (debugcheckstate, [], 'debugcheckstate'),
     "debugconfig": (debugconfig, [], 'debugconfig'),
+    "debugsetparents": (debugsetparents, [], 'debugsetparents REV1 [REV2]'),
     "debugstate": (debugstate, [], 'debugstate'),
     "debugdata": (debugdata, [], 'debugdata FILE REV'),
     "debugindex": (debugindex, [], 'debugindex FILE'),