Add a phases.new-commit option to control minimal phase of new commit
authorPierre-Yves David <pierre-yves.david@ens-lyon.org>
Tue, 20 Dec 2011 01:31:25 +0100
changeset 15706 ebaefd8c6028
parent 15705 e34f4d1f0dbb
child 15707 dc3eefe0c80e
Add a phases.new-commit option to control minimal phase of new commit this option is both intended for human and internal code usage.
mercurial/localrepo.py
--- a/mercurial/localrepo.py	Tue Dec 20 01:34:12 2011 +0100
+++ b/mercurial/localrepo.py	Tue Dec 20 01:31:25 2011 +0100
@@ -1251,8 +1251,15 @@
             self.hook('pretxncommit', throw=True, node=hex(n), parent1=xp1,
                       parent2=xp2, pending=p)
             self.changelog.finalize(trp)
-            # ensure the new commit is 1-phase
-            phases.retractboundary(self, 1, [n])
+            # set the new commit is proper phase
+            targetphase = self.ui.configint('phases', 'new-commit', 1)
+            if targetphase:
+                # retract boundary do not alter parent changeset.
+                # if a parent have higher the resulting phase will
+                # be compliant anyway
+                #
+                # if minimal phase was 0 we don't need to retract anything
+                phases.retractboundary(self, targetphase, [n])
             tr.close()
 
             if self._branchcache: