diff mercurial/localrepo.py @ 7655:cce37dab7ad6

branch closing: mark closed branches with a 'close' extra Adds a --close-branch option to commit. When --close-branch is present the commit will mark the changeset with close=1 in the changeset extras field. If a regular changeset is added on top of a closed head the branch is no longer considered closed, and thus re-opened.
author John Mulligan <phlogistonjohn@asynchrono.us>
date Wed, 14 Jan 2009 21:47:38 -0500
parents 816b708f23af
children 6a24fb994701
line wrap: on
line diff
--- a/mercurial/localrepo.py	Wed Jan 14 21:47:38 2009 -0500
+++ b/mercurial/localrepo.py	Wed Jan 14 21:47:38 2009 -0500
@@ -763,6 +763,8 @@
                match=None, force=False, force_editor=False,
                p1=None, p2=None, extra={}, empty_ok=False):
         wlock = lock = None
+        if extra.get("close"):
+            force = True
         if files:
             files = util.unique(files)
         try:
@@ -837,6 +839,8 @@
             user = wctx.user()
             text = wctx.description()
 
+            if branchname == 'default' and extra.get('close'):
+                raise util.Abort(_('closing the default branch is invalid'))
             p1, p2 = [p.node() for p in wctx.parents()]
             c1 = self.changelog.read(p1)
             c2 = self.changelog.read(p2)