CVS Best Practices

Vivek Venugopalan

Revision History
Revision 0.62002-09-10Revised by: vv
Added content related to tagging and daily builds. Changed Linuxdoc URLs to tldp. Fixed stale links and added other corrections suggested by readers.
Revision 0.52002-08-25Revised by: vv
Fixed some more errors in the document and added references to other CVS sources and some server side scripting
Revision 0.42002-03-10Revised by: vv
Added new email address, Added an example flow to show how the practices help
Revision 0.32001-12-06Revised by: vv
Grammatical errors cleanup
Revision 0.22001-11-27Revised by: vv
Incorporated first round of feedback and some minor fixes
Revision 0.12001-11-20Revised 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
3.1. Use GUI CVS client
4. Developer Sandbox
4.1. Keep System clocks in Sync
4.2. Do not share the sandbox
4.3. Stay in sync with the repository
4.4. Do not work outside the sandbox
4.5. Cleanup after Completion
4.6. Check-in Often
5. CVS 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 releases 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. Best Practices in Action
10.1. Inception
10.2. Development and Delivery
11. 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.