I and a colleague of mine tried git-flow at work and didn't found it enough 
flexible for our working situations. Although, we liked an idea of git 
branching automation, that’s how we came up with a own concept of automated 
git workflow. This post is to provide short description of it and to ask 
for comments.

The common point of many git workflows is a usage of topic-branches for 
development and various integration branches for testing and releases. 
Keeping changes in topic branches allows maintainer to select which changes 
to merge into integration branch. Also, when integration branch history 
consist of topic merges only, it’s easy to say what changes are included.
The downside of this approach is the fact that merge conflicts are solved 
by a person (e.g., maintainer or release-manager) who don't necessarily 
knows how to do this right.

Main idea:
There is a special integration branch (named ‘develop’) and every 
topic-branch should get merged into develop before it could be merged into 
other iteration branches. To merge topic into develop, developer use a tool 
that checks whether this topic conflicts with other topics already merged 
into develop and shows potential conflicts to developer. Developer should 
solve conflicts by merging conflicting topics into his topic or by 
reverting them in develop. When this is done, the tool allows developer to 
merge his topic into develop branch. Since topics merged into develop do 
not conflict with each other, other people are able to take topics from 
develop and to merge them into integration/test/release/master branches in 
almost arbitrary combination without merge-conflicts. Such merging freedom 
could simplify things like split-testing, release management etc.

For now such tool (we call it git-aflow, git-flow alternative) is partially 
implemented in Python. WIP copy may be obtained via “pip3 install gitaflow” 
or from github <https://github.com/einmalfel/git-aflow>. It requires python 
3.2+ and git. Didn't tried it on Windows yet, but it runs fine on Fedora 
and Ubuntu Linux.

For those interested, more detailed description and usage examples are 
available on a wiki <https://github.com/einmalfel/git-aflow/wiki>.

Criticism, suggestions and comments are highly appreciated!

You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to