Reputation: 17648
It seems to me as though Git is very powerful if one does not trust their developers, i.e. in massively open-source workflows.
However, I wonder what the most effecient use of Git is in a well organized project, where "n" developers are developing in "n" separate source packages, communicating effectively (i.e. via IRC, for example) about generic improvements, and commiting thoughtfully...
It seems that in this scenario, heavy branching simply adds boiler plate to an existing source tree.
Thus, I pose the question of what the advantages of Git's branching mechanisms are, in the latter scenario?
Forgive me if this indicates my ignorance regarding Git — the motivation for this question is that, generally, when I branch, I don't seem to reap much benefit out of it — but I do tend to forget what branch Im in at times, and this makes syncing code with HEAD somewhat difficult.
Upvotes: 0
Views: 507
Reputation: 129526
We use gitolite with this workflow. It allows a very disciplined way to work:
https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR
Upvotes: 0
Reputation: 97270
what the advantages of git's branching mechanisms are, in the latter scenario ?
"Errare humanum est". Feature-per-branch protect every developer from own errors and all team - from using unfinished or semi-broken features.
Upvotes: 0
Reputation: 12402
The concept of branching is primarily used to allow multiple parallel versions of development to exists, and is not necessarily there to allow more than one developer to work on the code. As a matter of fact, branching makes sense even on a project with only one developer (say you maintain a working not-so-stable line of development, and v.1.0 which is stable and accepts only bugfixes).
Upvotes: 0
Reputation: 73748
I don't see how branches relate to trust. That's not their primary purpose: they are a tool for organizing changes and the flow of work into a repository. Also, branching in Git can be scaled up and down: it can work in big open source projects, and in smaller, more controlled environments.
I'll say that the advantage of branches (in general) is that they allow you to organize your work well. You can have a feature branch that can be reviewed separately, you can have a stabilization branch for the next release, etc.
Upvotes: 1