Patchwork D6282: branch: abort if closing branch from a non-branchhead cset

login
register
mail settings
Submitter phabricator
Date April 25, 2019, 6:08 p.m.
Message ID <1ae634f8cf7bfe066a65c2d358858e19@localhost.localdomain>
Download mbox | patch
Permalink /patch/39832/
State Not Applicable
Headers show

Comments

phabricator - April 25, 2019, 6:08 p.m.
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG8d14d91584f1: branch: abort if closing branch from a non-branchhead cset (authored by khanchi97, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D6282?vs=14859&id=14924

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

AFFECTED FILES
  mercurial/commands.py
  tests/test-branches.t

CHANGE DETAILS




To: khanchi97, #hg-reviewers, pulkit
Cc: mercurial-devel

Patch

diff --git a/tests/test-branches.t b/tests/test-branches.t
--- a/tests/test-branches.t
+++ b/tests/test-branches.t
@@ -956,19 +956,16 @@ 
 
 trying to close branch from a cset which is not a branch head
 it should abort:
-XXX: it should have aborted here
   $ hg ci -m "closing branch" --close-branch
-  created new head
+  abort: can only close branch heads
+  [255]
 
   $ hg up 0
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ hg log -GT "{rev}: {node|short} {desc|firstline}\n\t{branch}\n\n"
-  _  3: 006876ddd20e closing branch
+  o  2: 155349b645be added c
   |  	default
   |
-  | o  2: 155349b645be added c
-  |/   	default
-  |
   o  1: 5f6d8a4bf34a added b
   |  	default
   |
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -1675,6 +1675,8 @@ 
 
         if not bheads:
             raise error.Abort(_('can only close branch heads'))
+        elif branch == repo['.'].branch() and repo['.'].node() not in bheads:
+            raise error.Abort(_('can only close branch heads'))
         elif opts.get('amend'):
             if (repo['.'].p1().branch() != branch and
                 repo['.'].p2().branch() != branch):