From: "Jean-Noël Avila" <avila.jn@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git <git@vger.kernel.org>
Subject: Re: Tagging a branch as "not fitted for branching" ?
Date: Tue, 29 Apr 2014 09:37:06 +0200 [thread overview]
Message-ID: <535F56A2.9020900@gmail.com> (raw)
In-Reply-To: <xmqqoazlm3ji.fsf@gitster.dls.corp.google.com>
Le 29/04/2014 01:34, Junio C Hamano a écrit :
> Jean-Noël Avila <avila.jn@gmail.com> writes:
>
>> Most manuals on git state that it is bad practice to push -f a branch
>> after have meddled with its history, because this would risk to upset
>> the repositories of the coworkers. On the other hand, some workflows
>> use branches to propose modifications, and need some rewritting of the
>> history after some review steps. In this case, the branch should only
>> be seen as a mere pile of patches. Having this two-sided discourse is
>> often misunderstood by casual git users.
>>
>> The proposed solution would be to be able to flag the branches with a
>> special tag "not fitted for branching" that a collaborator could use
>> when pushing it. This tag would be passed on to any pulled
>> remote. When another collaborator would then issue a "git checkout
>> -b", the command would fail with a warning message, unless forced with
>> -f'.
>>
>> Is this feature already present? If not, would it be of any interest?
> Since nobody seems to be responding...
>
> I do not think there is anything like that. I am not personally
> interested in it very much without seeing much details on how we go
> about implementing such a feature. Note that I am not speaking on
> behalf of the project, or as its maintainer, but just as one of the
> active contributors to the project, so my "not interested" is in no
> way final.
>
> There are ways other than "checkout -b" to end up having your
> commits on top of a forbidden commit. Are you going to cover all of
> them and at what point? You may rebase your work based on 'master'
> (which is not one of these forbidden branches) onto it. You may
> start your WIP on top of 'master', realize that you need something
> that is cooking only in 'pu' (which is a forbidden-to-be-built-on
> branch), and then do a "git checkout -m pu^0" in order to further
> experiment with it in an ideal world in which that prerequiste of
> yours already has graduated, and then decide to keep the WIP on a
> branch that you are not going to publish with "git branch wip" after
> commiting it on a detached HEAD. Requiring "-f" during such an
> exploratory, idea-forming programming exercise might be a bit too
> much, and I cannot offhand see where the good place is to require
> "-f" in the first place. At the final "git branch wip" step is too
> late, as you have already expended a lot of effort to build that
> WIP, and your saying "git branch wip" should be an enough clue for
> Git that you do mean to save it.
>
> At the first glance, I do agree (and to only this part I can say "I
> am interested in") that it might be a good idea if we had a bit more
> formal way to convey that branch 'pu' is not something you may want
> to base your final work on, but I am not sure if such a tag would
> help very much in practice or would be seen as a mere unnecessary
> roadblock that prevents them from freer experiments once the
> developers get used to the convention of their projects.
Thank you for your reply.
I had not looked at other scenarios and the use cases that you bring up
show that this feature would be far more complex than first estimated. I
was more focused on the simplest case that is the broadest in the github
fashion. Basing a work on a remote 'pu' branch when using advanced
branch management commands may not raise any warning, or these warnings
could be muffled with a config property.
After thinking a bit more on this, the initial idea encompassed another
feature: enable people to push without "-f" when they have created these
kind of branches. In your daily management of the pu branch for git, do
you have to use the -f flag a lot? Would it be helpful to just tell git
"I know what I am doing on this branch"? In this feature, the tagging
would only be local.
next prev parent reply other threads:[~2014-04-29 7:37 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-28 12:09 Tagging a branch as "not fitted for branching" ? Jean-Noël Avila
2014-04-28 23:34 ` Junio C Hamano
2014-04-29 7:37 ` Jean-Noël Avila [this message]
2014-04-29 17:43 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=535F56A2.9020900@gmail.com \
--to=avila.jn@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).