Source Control ManagementAnyone who has done software development for any amount of time has been saved by Source Control Management (SCM), which is sometimes referred to as Source Control or Version Control. There are two predominating SCM systems that are used in Open Source development and are Open Source developments in and of themselves. Both of these systems are widely used and well documented. For more information on SCM and how to use it, see http://www.perforce.com/perforce/bestpracticesl. Concurrent Versioning SystemConcurrent Versioning System (CVS) is used on most Open Source projects today. CVS is a client-server based application. Setting up the CVS server is very straightforward, and one feature I like best about the CVS is that its repository is file system-based. By that I mean text files and directories are the primary method of versioning used by the repository. This makes the repository very easily transported from machine to machine. CVS runs natively on Unix and Linux but also has a Windows port. The CVS server for Windows is fully functional and feature-rich. The only downfall is the attempted integration with NTLM authentication. But if you use CVS in tandem with Cygwin (http://www.cygwin.com), which brings a Unix-like environment to Windows, many other authentication methods are available. The CVS command-line client is functional but cryptic. Fortunately, there are other client programs available. The two most popular Windows-based CVS clients are WinCVS (http://www.wincvs.org) and TortoiseCVS. WinCVS is a familiar Windows Explorer-type user interface and is easily navigable.TortoiseCVS takes a different approach, as seen in Figure 3-8. Instead of mimicking Windows Explorer, the TortoiseCVS project (http://www.tortoisecvs.org) developed a Windows shell extension for Explorer. Figure 3-8. TortoiseCVS.[View full size image] ![]() Using WinCVS with SourceforgeIf you are truly interested in Open Source, once you start, you will find yourself hooked and will shortly find it necessary to use CVS to commit a change or get the "bleeding edge" stuff. Figure 3-9 shows how to set up WinCVS to check out a project from Sourceforge. Most people who set up a CVS repository also give you the information to check out the Open Source code anonymously. Figure 3-9. WinCVS Setting Up to Check Out nAnt from Sourceforge.net.[View full size image] ![]() SubversionThe creators of CVS got the opportunity that many developers never get. Many development projects I have worked on start out as a prototype and evolve into a product. In the end, I have looked back and said, "I could do that so much better now!" Subversion is the CVS creator's opportunity to start all over and do it better. Subversion adds many new features that the architecture of CVS does not allow, like versioning of the entire repository! Subversion also has a Windows client based on the TortoiseCVS idea called TortoiseSVN (http://tortoisesvn.tigris.org/). Figure 3-10 shows Tortoise CVS in action. Figure 3-10. TortoiseSVN and the Anakrino Repository.[View full size image] ![]() Using SubversionAnakrino is a very useful tool in .NET development. For more information on the project and what it does, see the description under "Other Development Tools for .NET" at the end of the chapter. Anakrino's author has made the source available to the public via a Subversion repository. Subversion can also be viewed over the Web using the WEBDAV standard. |