CVS Best Practices

Vivek Venugopalan

vivekv at

Revision History
Revision 0.2 2001-11-27 Revised by: vv
Incorporated first round of feedback and some minor fixes
Revision 0.1 2001-11-20 Revised by: vv

Table of Contents
1. Introduction
1.1. Copyright Information
1.2. Disclaimer
1.3. New Versions
1.4. Credits
1.5. Feedback
2. Focus Areas
3. Using GUI Tools
4. Developer Sandbox
4.1. Keep System clocks in Sync
4.2. Do not share the sandbox
4.3. Do not work outside the sandbox
4.4. Stay in Sync with the repository
4.5. Cleanup after completion
4.6. Check-in Often
5. Server Configuration
5.1. Server side scripting
5.2. Server Notification
6. Branching and Merging
6.1. Assign Ownership to Trunk and Branches
6.2. Tag each release
6.3. Create a branch after each release
6.4. Make bug fixes to branches only
6.5. Make patch release from branches only
7. Change Propagation
7.1. Merge branch with the trunk after release
8. Software Builds
8.1. Build Early and Build Often (BEBO)
8.2. Automate Build Process completely
8.3. All necessary files must be checked before build
9. Institutionalize CVS in the Organization
9.1. Implement Change Management Process
9.2. Make CVS Usage part of Objectives
9.3. Collect metrics on CVS usage
10. Conclusion
A. GNU Free Documentation License
0. Preamble
1. Applicability and Definitions
2. Verbatim Copying
3. Copying in Quantity
4. Modifications
5. Combining Documents
6. Collections of Documents
7. Aggregation with Independent Works
8. Translation
9. Termination
10. Future Revisions of this License
How to use this License for your documents

This article explores some of the best practices that can be adopted while using CVS as the configuration management tool in your software projects.