pulkit created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  scmutil.cleanupnodes is used by rebase, histedit and amend to do create
  obsmarkers or strip nodes. This patch adds functionality to cleanupnodes to 
take
  a formatter and if a formatter is passed, it will show the hash changes also.
  
  The formatter is a optional argument, so if a command needs to show the hash
  changes it can pass a formatter and if not, things work.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D581

AFFECTED FILES
  mercurial/scmutil.py

CHANGE DETAILS

diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py
--- a/mercurial/scmutil.py
+++ b/mercurial/scmutil.py
@@ -576,7 +576,7 @@
     def __contains__(self, node):
         return self._revcontains(self._torev(node))
 
-def cleanupnodes(repo, mapping, operation):
+def cleanupnodes(repo, mapping, operation, fm=None):
     """do common cleanups when old nodes are replaced by new nodes
 
     That includes writing obsmarkers or stripping nodes, and moving bookmarks.
@@ -646,6 +646,21 @@
             from . import repair # avoid import cycle
             repair.delayedstrip(repo.ui, repo, list(mapping), operation)
 
+        # Is a formatter object is paased? Do we want to display the hash
+        # changes also?
+        if fm:
+            oldnodes = sorted(mapping.keys())
+            hexfunc = fm.hexfunc
+            label = 'cleanupnodes'
+            for node in oldnodes:
+                newnodes = mapping[node]
+                if len(newnodes) == 1:
+                    newnode = newnodes[0]
+                    fm.startitem()
+                    fm.write('oldnode', '%s is changed to ', hexfunc(node),
+                                                                label=label)
+                    fm.write('newnode', '%s\n', hexfunc(newnode), label=label)
+
 def addremove(repo, matcher, prefix, opts=None, dry_run=None, similarity=None):
     if opts is None:
         opts = {}



To: pulkit, #hg-reviewers
Cc: mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to