120 likes | 243 Views
Source Code Management with CVS. Kurt Wiersma December 2004. Who Am I?. CF developer since CF 4.0 Big fan of Java Graduated from St. Olaf College in 2001 with a major in Chemistry and a minor in CS Currently working for the American Academy of Neurology ( www.aan.com )
E N D
Source Code Management with CVS Kurt WiersmaDecember 2004
Who Am I? • CF developer since CF 4.0 • Big fan of Java • Graduated from St. Olaf College in 2001 with a major in Chemistry and a minor in CS • Currently working for the American Academy of Neurology (www.aan.com) • We are looking for contractors • Blog: http://www.jroller.net/page/kwiersma • Email: kwiersma@mac.com • I have been working with CVS for a little more then a year
Benefits of Source Code Management • All code changes are tracked • Allows you to roller back changes • Allows you to track who “broke” the app • Codes changes across several developers can be synchronized • Makes it easy to backup your source code • You can work on several different copies of the same application at the same time. Example: development and production
SCM Systems • Open Source • CVS - http://cvshome.org • Subversion - http://subversion.tigris.org • Commercial • PVCS - http://www.pvcs.synergex.com/ • Perforce - http://www.perforce.com/ • Visual Source Safe - http://www.microsoft.com
What is CVS? • CVS = Concurrent Versions System • Open source • Client/server design • Client and servers available for just about any platform OS X, Windows, and Linux • Traditionally command line based but there are several excellent GUI clients
Terminology • Repository - area on the server where the files are stored • Sandbox - a local copy of the code which you work on and then commit to the repository • Checkout - act of getting a local a copy of the latest version of the code from the repository • Commit - saving the changes to your local file(s) to the cvs repository
Terminology (part 2) • Update - getting code changes that have been committed since you checked out the project • Merge - combining changes between two versions of the same file • History - shows a list of commit messages, times and, who committed for a particular file • Revision - cvs assigned version number for a file • Tagging - a way to mark a group of files and revisions • Branching - a way to work on multiple copies of your application
Demo • http://localhost/cgi-bin/viewcvs/viewcvs.cgi
GUI CVS Clients • Free • WinCVS - http://www.wincvs.org/ • MacCVS - http://www.wincvs.org/downloads.html • TortoiseCVS - http://www.tortoisecvs.org/ • Eclipse - http://eclipse.org • Commerical • SmartCVS - http://smartcvs.com
CVS Servers • Windows • CVSNT - http://cvsnt.org • Linux • Generally comes with your distribution • Mac OS X • Comes with the free developer tools • See my hint for setup: http://www.macosxhints.com/article.php?story=20020918055124794
Other CVS Tools • ViewCVS - http://viewcvs.sourceforge.net/ • CVSMonitor - http://ali.as/devel/cvsmonitor/
CVS Resources • CVS Manual - https://www.cvshome.org/docs/manual/ • Web Site Projects with CVS - http://www.durak.org/cvswebsites/howto-cvs/ • O’Reilly book CVS: The Definitive Guide