CVS:CONCURRENT VERSIONS SYSTEM Introduction to CVS CVS maintains a history of a source tree, in terms of a series of changes. It stamps each change with the time it was made and the user name of the person who made it. Usually, the person provides a bit of text describing why they made the change as well. Given that information, CVS can help developers answer questions like: Who made a given change? When did they make it? Why did they make it? What other changes did they make at the same time? Installing CVS Server and GUI Client CVS Server version for both windows and Linux available as free source and can be obtained from for windows version : http://www.cvsnt.org/ and linux: https://ccvs.cvshome.org/servlets/ProjectDocumentList?folderID=89&expandFolder=89&folderID=88
Gui cvs client for windows can be downloaded from http://www.wincvs.org/download.html It is advisable to load python in order to get certain admin information from wincvs client. Python may be downloaded from http://www.python.org/download/ In RedHat Version of linux CVS package comes along with the distribution CD. To Check whether CVS is installed run the following command as root #rpm -q cvs cvs-1.11.17-1 will be displayed 1.11.17-1 is the vesion of cvs. If not installed you may install the RPM from the RedHat distribution CD. Configuring CVS Server on LINUX Create cvs group Add developers to the cvs group (Security aspect need to be delt as per the organisation's policy) Create a directory where project sources will be stored. Run #mkdir /data/cvsrepos as cvs group Run #cvs -d /data/cvsrepos init copy the following in a text editor and save it in /etc/xinet.d folder as cvspserver and restart xinetd. #cvspserver script # default: on # description: The cvspserver serves cvs password authentication; it uses \ # unencrypted username/password pairs for authentication. service cvspserver { disable = no socket_type = stream protocol = tcp user = root wait = no server = /usr/bin/cvs #server_args = -f --allow-root=/data/cvs pserver server_args = -f --allow-root=/home/cvsuser pserver log_on_success += USERID log_on_failure += USERID } Installing and connecting CVS server from Windows clients run wincvs setup.exe open wincvs Click Admin-Preferance and fill the Genaral tab Authentication : pserver (Authentication method) Path:/data/cvsrepos (CVS Repository ) Host Name : Name of the server or ip address of the server Username: name of the developer (login name as given in linux) In CVS tab home: d:\sandboxusernameprojectname (path of the folder where developer works) In Globals tab untick checkout read only option. Import module into CVS Open wincvs Click Admin-login enter ok Give user unix password Click edit-browselocation and browse the module to be imported Right click the module and click import module CVS bring a window indicating the extention that will be imported. (All files are imported in either text or binary format. Text files .txt, .frm, .sql, .frm, .pas, .bas, etc,. Will be imported as text files and binary files .bmp, .jpg, .doc, .exe, etc,. Will be as binary files.) Provide appropriate log/notes and Click ok Now CVS client will start importing the selected module to the CVS Server Checkout Module from CVS server to windowsclient After Setting Preferences and login into cvs Click edit-Browse location to your sandboxusernameprojectname folder. Right Click Sandboxusernameprojectname folder in cvs window and Click Checkout module. Checkout window will open. Enter the name of the module you want to checkout in the name of the module combo box. Click Ok and module will start checking out from Server to the sandboxusernameprojectname folder. Open from cvs window the files that need modification and start modify. (CVS client will open files using respective application automaticlaly) Commit into server the changes that were made in client machine Once any modification done on any file wincvs client will change the color into red in the cvs window to indicate that those files needed to be commited into CVS Server. Right Click the file needed to be commited and select commit file Enter approprate log message in the commit window, which will be helpful while tracing at later stages. Click Ok and will find that the color changes into normal color. Update local copy with the latest Server copy of the module Open wincvs Client and login into CVS. Right click module/file and select update Click Ok for updating local with the server copy. Check get a clean copy box for getting clean server copy. Golden rule about CVS updating "Always update before Commit". Tail Piece Have a better code control with CVS. _______________________________________________ Cvs-utils mailing list Cvs-utils@gnu.org http://lists.gnu.org/mailman/listinfo/cvs-utils