--- a/hgext/histedit.py Fri Jun 07 16:04:11 2013 -0500
+++ b/hgext/histedit.py Fri Jun 07 16:59:59 2013 -0500
@@ -140,6 +140,7 @@
try:
import cPickle as pickle
+ pickle.dump # import now
except ImportError:
import pickle
import os
--- a/mercurial/commands.py Fri Jun 07 16:04:11 2013 -0500
+++ b/mercurial/commands.py Fri Jun 07 16:59:59 2013 -0500
@@ -1334,12 +1334,19 @@
raise util.Abort(_('cannot commit an interrupted graft operation'),
hint=_('use "hg graft -c" to continue graft'))
+ branch = repo[None].branch()
+ bheads = repo.branchheads(branch)
+
extra = {}
if opts.get('close_branch'):
extra['close'] = 1
- branch = repo[None].branch()
- bheads = repo.branchheads(branch)
+ if not bheads:
+ raise util.Abort(_('can only close branch heads'))
+ elif opts.get('amend'):
+ if repo.parents()[0].p1().branch() != branch and \
+ repo.parents()[0].p2().branch() != branch:
+ raise util.Abort(_('can only close branch heads'))
if opts.get('amend'):
if ui.configbool('ui', 'commitsubrepos'):
--- a/mercurial/help/extensions.txt Fri Jun 07 16:04:11 2013 -0500
+++ b/mercurial/help/extensions.txt Fri Jun 07 16:59:59 2013 -0500
@@ -3,14 +3,6 @@
existing commands, change the default behavior of commands, or
implement hooks.
-Extensions are not loaded by default for a variety of reasons:
-they can increase startup overhead; they may be meant for advanced
-usage only; they may provide potentially dangerous abilities (such
-as letting you destroy or modify history); they might not be ready
-for prime time; or they may alter some usual behaviors of stock
-Mercurial. It is thus up to the user to activate extensions as
-needed.
-
To enable the "foo" extension, either shipped with Mercurial or in the
Python search path, create an entry for it in your configuration file,
like this::
@@ -23,6 +15,16 @@
[extensions]
myfeature = ~/.hgext/myfeature.py
+See :hg:`help config` for more information on configuration files.
+
+Extensions are not loaded by default for a variety of reasons:
+they can increase startup overhead; they may be meant for advanced
+usage only; they may provide potentially dangerous abilities (such
+as letting you destroy or modify history); they might not be ready
+for prime time; or they may alter some usual behaviors of stock
+Mercurial. It is thus up to the user to activate extensions as
+needed.
+
To explicitly disable an extension enabled in a configuration file of
broader scope, prepend its path with !::
--- a/mercurial/help/phases.txt Fri Jun 07 16:04:11 2013 -0500
+++ b/mercurial/help/phases.txt Fri Jun 07 16:59:59 2013 -0500
@@ -52,7 +52,7 @@
[phases]
publish = False
-See :hg:`help config` for more information on config files.
+See :hg:`help config` for more information on configuration files.
.. note::
Servers running older versions of Mercurial are treated as
--- a/tests/test-branches.t Fri Jun 07 16:04:11 2013 -0500
+++ b/tests/test-branches.t Fri Jun 07 16:59:59 2013 -0500
@@ -267,14 +267,16 @@
$ hg up -C b
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg commit -d '9 0' --close-branch -m 'close this part branch too'
+ $ hg commit -d '9 0' --close-branch -m 're-closing this branch'
+ abort: can only close branch heads
+ [255]
- $ hg commit -d '9 0' --close-branch -m 're-closing this branch'
$ hg log -r tip --debug
- changeset: 13:c2601d54b1427e99506bee25a566ef3a5963af0b
+ changeset: 12:e3d49c0575d8fc2cb1cd6859c747c14f5f6d499f
branch: b
tag: tip
phase: draft
- parent: 12:e3d49c0575d8fc2cb1cd6859c747c14f5f6d499f
+ parent: 8:eebb944467c9fb9651ed232aeaf31b3c0a7fc6c1
parent: -1:0000000000000000000000000000000000000000
manifest: 8:6f9ed32d2b310e391a4f107d5f0f071df785bfee
user: test
@@ -282,13 +284,9 @@
extra: branch=b
extra: close=1
description:
- re-closing this branch
+ close this part branch too
- $ hg rollback
- repository tip rolled back to revision 12 (undo commit)
- working directory now based on revision 12
-
--- b branch should be inactive
$ hg branches
--- a/tests/test-commit-amend.t Fri Jun 07 16:04:11 2013 -0500
+++ b/tests/test-commit-amend.t Fri Jun 07 16:59:59 2013 -0500
@@ -743,3 +743,27 @@
-aa
-aa
+Issue 3445: amending with --close-branch a commit that created a new head should fail
+This shouldn't be possible:
+
+ $ hg up -q default
+ $ hg branch closewithamend
+ marked working directory as branch closewithamend
+ (branches are permanent and global, did you want a bookmark?)
+ $ hg ci -Am..
+ adding cc.orig
+ adding obs.py
+ adding obs.pyc
+ $ hg ci --amend --close-branch -m 'closing'
+ abort: can only close branch heads
+ [255]
+
+This silliness fails:
+
+ $ hg branch silliness
+ marked working directory as branch silliness
+ (branches are permanent and global, did you want a bookmark?)
+ $ echo b >> b
+ $ hg ci --close-branch -m'open and close'
+ abort: can only close branch heads
+ [255]