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
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.
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
For more options, visit https://groups.google.com/d/optout.