mercurial/scmutil.py
changeset 38204 eb9835014d20
parent 38164 46c2b19a1263
child 38261 1e9c357d3ddf
--- a/mercurial/scmutil.py	Mon May 28 01:36:34 2018 -0400
+++ b/mercurial/scmutil.py	Thu May 24 12:19:50 2018 +0200
@@ -1482,6 +1482,24 @@
                 revrange = '%s:%s' % (minrev, maxrev)
             repo.ui.status(_('new changesets %s\n') % revrange)
 
+        @reportsummary
+        def reportphasechanges(repo, tr):
+            """Report statistics of phase changes for changesets pre-existing
+            pull/unbundle.
+            """
+            newrevs = tr.changes.get('revs', xrange(0, 0))
+            phasetracking = tr.changes.get('phases', {})
+            if not phasetracking:
+                return
+            published = [
+                rev for rev, (old, new) in phasetracking.iteritems()
+                if new == phases.public and rev not in newrevs
+            ]
+            if not published:
+                return
+            repo.ui.status(_('%d changesets became public\n')
+                           % len(published))
+
 def nodesummaries(repo, nodes, maxnumnodes=4):
     if len(nodes) <= maxnumnodes or repo.ui.verbose:
         return ' '.join(short(h) for h in nodes)