I have one more question in addition to what Sheng asked. Document
http://nvie.com/posts/a-successful-git-branching-model/ mentions that the
*hotfix branch should be created for the blocker/critical bugs in the
current production release. What about bugs happenning in the *release
branch (the one that hasn't been released yet)? Should we fix them
directly in the *release branch, or should we branch out off the *release
branch, fix the problem, and merge the fix to *release? Would the rule be
the same for Major bug as opposed to Critical one?

Thank you,
Alena.



On 7/29/14, 12:52 AM, "Leo Simons" <lsim...@schubergphilis.com> wrote:

>On Jul 29, 2014, at 5:45 AM, Sheng Yang <sh...@yasker.org> wrote:
>> I am trying to catch up, by reading the thread and checking what's
>>gitflow
>> etc, but could someone already familiar with the topic give an overview
>>of
>> the issue?
>> 
>> For example, we can start by asking these questions:
>> 1. What's the issue with current development process?
>
>Right now it is quite hard to get to a stable release, or to produce high
>quality contributions, and this happens in part because of the git
>workflow in use.
>
>Cherry-picking is an approach where git can provide 0 assistance with
>branch and merge management. Read
>  http://www.draconianoverlord.com/2013/09/07/no-cherry-picking.html
>for an introduction to that subject, for example.
>
>> 2. What's the purposed new approach to the process?
>
>To use a branch/merge workflow rather than a cherry-pick workflow,
>preserving commit ids across branches.
>
>To adopt a specific well-documented workflow called git-flow that has
>tool support. Read
>  http://nvie.com/posts/a-successful-git-branching-model/
>for an introduction to git-flow.
>
>To then tune this workflow to cloudstack. In particular, so far, I¹ve
>noted
>* not deleting release branches once releases are finished
>* consider using support/ branches for point releases rather than hotfix/
>branches
>
>Note that this new workflow implies a variety of things, including:
>* sharing responsibility for merges among many committers (as opposed to
>a release manager responsible for cherry picking)
>* distributing the Œmerge pain¹ throughout the development process as
>features finish up (rather than Œbig bang¹ during release time)
>
>> 3. What's the pro/con of the new process? And what's the pro/con of the
>>old
>> one?
>
>This is very difficult to summarize fairly.
>
>IMHO the only advantage of the old process is that it is what everyone
>knows already. It¹s main downsides are that it is not using git¹s
>excellent branch management features, does not allow comparing or merging
>between branches, requires contributions to be re-written for multiple
>branches, and encourages developers to ignore merge conflicts until
>release time.
>
>IMHO any workflow that does not rely on cherry-picking has only
>advantages compared to the current process.
>
>Git-flow has many people that like it and many people that don¹t. But,
>the people that don¹t like it usually use another branch/merge model, not
>cherry-picking. It¹s main advantages among available branch/merge
>workflwos are being well-defined, oft-used and tool-supported.
>
>> That would make the question much more clear.
>
>Hope this helps,
>
>
>cheers,
>
>
>Leo
>

Reply via email to