Collaboration is the key to successful projects. But creating an effective collaboration is knowing how to integrate the contributions of team members.
There are many aspects to building a great collaboration, good people, good tools, and good procedures. The people part is the subject for other works but the tools and procedures will be covered here.
The tools are Git and GitHub or Mercurial (HG).
In the last few years many developers have moved from old style version control systems like CVS and SVN to new Distributed Version Control Systems like HG and GIT. Which offer a lot more power and flexibility for development teams.
When using SVN (or CVS) there is really only one work flow that can be used. Everyone checks in to one central repository and every commit is exposed to every developer. Thus it is impossible to check in partial work without risking Breaking the Build. In addition branches are a pain to use.
However in making this transition many teams have not realized that there are many ways to setup a team work flow with a DVCS system. This book aims to explore some of those setups and explain why they work or don’t work for that team.
You can find this book online at http://zkessin.github.com/dvcs-workflows. The version there should track the master branch here.
If you wish to build the book from the asciidoc sources install asciidoc and run this command
asciidoc --backend=html5 --out-file=book.html toc.asciidoc
This ebook may eventually turn into a real book of some form.
If your team has done something different from what I have documented here and you would like to contribute what you have done please write it up and send a pull request. If your work flow did not work well for your team please write it up anyway with why it didn’t work so others can learn from your experience.
Also please include your name, project or organization and as much detail as you can.
Work flows should start with this table as a guide for readers. You can copy the markup from the source of this file.
Team Members | Well Defined | Amorphous |
---|---|---|
Team Location |
Distributed |
Co Located |
Time Frame |
On Going |
Limited |
Team Size |
Large |
Small |
Leadership |
Formal |
Informal |
Repository Access |
Public |
Private |
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.