I work on several projects, both for work and for recreation, that require code editing by more than one person at a time. Some projects I've created on my own, while others were well established long before I came upon them. There are common threads between them, and I would like to try to point out some things that I've learned along the way.
When working collaboratively, a source code control system is mandatory. There is simply no other way in my mind to efficiently collaborate on a project of any size without source code management.
One might think that code control is not necessary for collaborating on small projects, but for those smaller projects it is especially true. If a project consists of a single file, and two people are working on that file, the only way to make the changes not continuously conflict with one another is to use some form of code control. The alternative of sending back and forth changes or keeping in constant contact to ask if another person is editing a file you need is not practical....
more