In part because we were not using version control effectively. If you are unfamiliar with CVS, go read the overview to make sure you understand the basic concepts. It encourages developers to document the changes they make It helps a group of developers keep track of who is doing what Every single file that is required for the ACS or a project to run should be under version control. Developers working remotely on their own private working copies of the ACS must use the ext method to connect with ssh as the transport agent.
Primary development takes a place along the trunk of the revision tree.
In a large project like the ACS, each file has an independent sequence of revision numbers that mark its evolution. These revision numbers are unrelated to the revision numbers of other files in the project. You can also create a branch of the revision tree to isolate changes before a big event like a software release. Development along the branch is then isolated from development along the trunk. We need a minimal amount of branching.