I agree that for only one commit on the feature branch, merging it with --no-ff 
is a little excessive, but it does help if the name of the branch is valuable 
in the merge commit. I don't think there's any problem with rebasing the 
feature branch on develop before merging to keep the history cleaner. When 
there is more than one commit, then I think this comment from the same section 
is important:

"In the latter case, it is impossible to see from the Git history which of the 
commit objects together have implemented a feature—you would have to manually 
read all the log messages. Reverting a whole feature (i.e. a group of commits), 
is a true headache in the latter situation, whereas it is easily done if the 
--no-ff flag was used."

Here's another good doc on the same Gitflow workflow:
http://www.atlassian.com/git/workflows#!workflow-gitflow

--Dasa

On Mar 18, 2013, at 3:06 PM, Frédéric THOMAS <webdoubl...@hotmail.com> wrote:

>> The nvie.com<http://nvie.com> git flow actually advocates not squashing your 
>> feature branches when you merge them to develop. From the section entitled, 
>> "Incorporating a finished feature on develop".
>> The --no-ff flag causes the merge to always create a new commit object, even 
>> if the merge could be performed with a fast-forward. This avoids losing 
>> information about the historical existence of a feature branch and groups 
>> together all commits that together added the feature.
> 
> Interesting model, after having collaborated on git projects, I don't use the 
> --no-ff flag as it quickly messes an history, especialy for bugfixes, I'm 
> more flexible regarding the no fast forward on important branch/features done 
> by a team, rarely by an individual, otherwise it makes the history graph 
> unreadable, I even heard "oh, nice, that's looks like to have been done by 
> geeks", personaly, I find that unredable and useless, rebasing is a good 
> pratice, it let you get a chance to clean your commits before merging, making 
> the history more readable.
> 
>> Also, I think feature branches can be shared to the origin to allow for 
>> collaboration, but they should eventually be deleted once they're merged or 
>> abandoned.
> 
> Totaly agreed with that.
> 
>> Feature branches typically exist in developer repos only, not in origin.
> 
> Except if it needs collaboration indeed.
> 
> Anyway, at the end, each one will do with it's own experience, collaborating 
> on a feature is the best way to learn Git but we do more bugfixes.
> 
> Thanks for having shared that,
> -Fred
> 
> -----Message d'origine----- From: Dasa Paddock
> Sent: Monday, March 18, 2013 10:02 PM
> To: <dev@flex.apache.org>
> Subject: Re: nvie branch model
> 
> The nvie.com<http://nvie.com> git flow actually advocates not squashing your 
> feature branches when you merge them to develop. From the section entitled, 
> "Incorporating a finished feature on develop".
> 
> The --no-ff flag causes the merge to always create a new commit object, even 
> if the merge could be performed with a fast-forward. This avoids losing 
> information about the historical existence of a feature branch and groups 
> together all commits that together added the feature.
> 
> Also, I think feature branches can be shared to the origin to allow for 
> collaboration, but they should eventually be deleted once they're merged or 
> abandoned. This is from the section introducing feature branches:
> 
> The essence of a feature branch is that it exists as long as the feature is 
> in development, but will eventually be merged back into develop (to 
> definitely add the new feature to the upcoming release) or discarded (in case 
> of a disappointing experiment).
> 
> Feature branches typically exist in developer repos only, not in origin.
> 
> --Dasa
> 
> On Mar 18, 2013, at 1:07 PM, Frédéric THOMAS 
> <webdoubl...@hotmail.com<mailto:webdoubl...@hotmail.com>> wrote:
> 
> From what I understand of this model, you don't even develop on the dev 
> branch but on feature/bugfix branches, this allow you to cleanup your commits 
> (rebasing/squashing them first, sorry for the bad words, see [1] in case) 
> before merging the complete feature/bugfix on the develop branch, the release 
> branch is for RC, once ok, the final release is tagged on the master.
> 
> -Fred
> 
> [1] http://www.atlassian.com/git/tutorial/git-basics
> 
> -----Message d'origine----- From: Gordon Smith
> Sent: Monday, March 18, 2013 8:54 PM
> To: dev@flex.apache.org<mailto:dev@flex.apache.org>
> Subject: nvie branch model
> 
> My understanding is that we've decided to follow
> 
> http://nvie.com/posts/a-successful-git-branching-model/
> 
> but the first diagram looks like spaghetti to me. There are relatively few 
> people working in the flex-falcon repo, and I'd like to understand what we 
> have to do to be minimally compliant with the nvie model. Is it sufficient to 
> simply create a 'develop' branch in addition to 'master' and then do 
> development there? Would we delay merging to 'master' until we reach a 1.0 
> release?
> 
> - Gordon
> 
> 
> 
> 

Reply via email to