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