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

Matt Harbison mharbison72 at gmail.com
Wed May 8 23:23:50 EDT 2019


On Sun, 05 May 2019 14:13:16 -0400, Pierre-Yves David  
<pierre-yves.david at ens-lyon.org> wrote:

>
>
> On 5/1/19 11:18 PM, Sushil Khanchi wrote:
>> .
>>  On Wed, May 1, 2019 at 9:22 PM Pierre-Yves David  
>> <pierre-yves.david at ens-lyon.org  
>> <mailto:pierre-yves.david at ens-lyon.org>> wrote:
>>      .
>>      On 5/1/19 2:14 PM, Sushil Khanchi wrote:
>>      > .
>>      >
>>      > On Wed, May 1, 2019 at 5:14 PM Pierre-Yves David
>>      > <pierre-yves.david at ens-lyon.org
>>     <mailto:pierre-yves.david at ens-lyon.org>
>>     <mailto:pierre-yves.david at ens-lyon.org
>>     <mailto:pierre-yves.david at ens-lyon.org>>>
>>      > wrote:
>>      >
>>      >
>>      >
>>      >     On 5/1/19 1:14 PM, Sushil Khanchi wrote:
>>      >      > .
>>      >      >
>>      >      > On Fri, Apr 26, 2019 at 8:29 PM Pierre-Yves David
>>      >      > <pierre-yves.david at ens-lyon.org
>>     <mailto:pierre-yves.david at ens-lyon.org>
>>      >     <mailto:pierre-yves.david at ens-lyon.org
>>     <mailto:pierre-yves.david at ens-lyon.org>>
>>      >     <mailto:pierre-yves.david at ens-lyon.org
>>     <mailto:pierre-yves.david at ens-lyon.org>
>>      >     <mailto:pierre-yves.david at ens-lyon.org
>>     <mailto:pierre-yves.david at ens-lyon.org>>>>
>>      >      > wrote:
>>      >      >
>>      >      >
>>      >      >
>>      >      >     On 4/19/19 9:49 AM, khanchi97 (Sushil khanchi) wrote:
>>      >      >      > khanchi97 created this revision.
>>      >      >      > Herald added a subscriber: mercurial-devel.
>>      >      >      > Herald added a reviewer: hg-reviewers.
>>      >      >      >
>>      >      >      > REVISION SUMMARY
>>      >      >      >    This patch make sure that we abort if the user
>>     is trying to
>>      >      >      >    close a branch from a cset which is not a branch
>>     head.
>>      >      >      >    Changes in test file reflect the fixed  
>> behaviour.
>>      >      >
>>      >      >     Is there a way to override this ? There can be  
>> situation
>>      >     where the
>>      >      >     changeset is not a local head but could be a remote  
>> head.
>>      >      >
>>      >      > By closing remote head, you mean first close that locally
>>     (where
>>      >     it is
>>      >      > not a head) and push that to a remote (where it is a  
>> head)?
>>      >
>>      >     Yes
>>      >
>>      > I don't think in present code there is any way to override this.
>>     Do you
>>      > have any idea? Or any other place in mercurial you remember  
>> where we
>>      > handle similar situation?
>>      > And just for knowledge I would like to know how often developers  
>> use
>>      > this remote head closing thing (when locally it is not a head)?
>>      Something similar coming to mind is `hg tag`. It will -warn- when
>>     tagging a non-head but will still tag. Maybe we should align on this
>>     (warning instead of aborting)
>>   How about prompting the user to confirm? One upside in prompting I  
>> see is that user don't have to run `hg strip/prune`. Also the downside  
>> is it requires user intervention.
>
> prompt are usually not a great user experience.

Maybe require `--force` to override the abort?  I don't necessarily care  
for prompts either, but the tag behavior always struck me as weird- it  
warns, but it makes changes to the repo anyway and the stock hg  
configuration doesn't let you edit history to fix it.

> I lean toward saying "lets have a user experience similar to `hg tag`".  
> Alternatively, we could have a warning early. For example, if the commit  
> message editor had a line about adding a new heads/closing non-head,  
> this would be a clear win.

I typically don't notice what else is in the commit message editor, unless  
while writing the commit, I start to doubt what files I named.


More information about the Mercurial-devel mailing list