CVS represents a collaborative version of the system; this is a system that puts a set of files in the hierarchy tree to keep synchronous systems. People can update their local hierarchy copies from the CVS server and send the modified result or new file; or delete the old file.
CVS based on client / server behavior makes it easy to accommodate multiple users, and it is convenient to constitute a network. This feature allows CVS to become the first choice when people in different locations have handled data files (especially the source code of the program).
All important free software items use CVS as a central point between its programmers to integrate the improvements and changes to each programmer. These items include: GNome, KDE, The GIMP, WINE, and more.
Therefore, it is naturally, Mandrakesoft also uses CVS as its own development management platform.
Below is my own steps I have in configuring CVS servers and clients, I hope to save you time, one step is to ^ - ^
All steps to configure the server are as follows:
1: I use Linux RedHat9.0
2: Established a CVS user group
GroupAdd CVS
3. Establish a CVSRoot user and the directory of the CVS group
UserAdd -g cvs -g cvs -d / home / cvsroot cvsroot
4: Add a password for cvsroot users
Passwd cvsroot
5: Change / home / cvsroot directory properties
CHMOD 775 / HOME / CVSROOT
6: Initialize the CVS source library, this operation generates directory / home / cvsroot / cvsroot, under the initialization file
CVS -D / home / cvsroot init
7: Create a user and password that can log in to the CVS service, you need to create a file passwd
Vi / Home / CvsRoot / CVSROOT / Passwd
The document content is as follows:
Steven: xxxxx: cvsroot
8.xxxxxx is a password, generated by the following file: vi /Home/cvsroot/passwdgen.pl file content:
#! / usr / bin / perl
SRAND (Time ());
MY $ RANDLETTER = "(INT (RAND (26)) (INT (Rand (1) .5)% 2? 65: 97))
MY $ SALT = Sprintf ("% C% C", Eval $ Randletter, Eval $ Randletter;
MY $ plaintext = shift; my $ crypttext = crypt ($ PlainText, $ SALT);
Print "$ {CRYPTTEXT} / N";
9. If you need a password to: Some, type: passwdgen.pl "some" Enter the encrypted password to return to the xxxxxx in the Passwd file
10. Join the CVS service (my Redhath9 has a CVS service, so you don't have to add)
VI / ETC / SERVICES
CVSPSERVER 2401 / TCP #PServer CVS Service
CVSPSERVER 2401 / UDP #PServer CVS Service
11. CVS service is evoked by my intend, so I need to change the service provided by inetd, my RedHat is used in the inetd method to add the following: CVSPSERVER Stream TCP NOT / USR / BIN / CVS cvs - allow-root = / home / cvsroot PServer
My RedHat9 uses the Xinetd method, so adds services that need to be started in the xinetd.d directory:
CD /etc/xinetd.d
VI CVSPSERVER
document content:
Service CVSPServer
{
Disable = no
Flags = Reuse
Socket_type = streamwait = no
User = root
Server = / usr / bin / cvs
Server_Args = -f - allowow-root = / home / cvsroot pserver
LOG_ON_FAILURE = UserID
}
12. Restart inetd or xinetd:
/etc/rc.d/init.d/xinetd Restart
13. Check if the CVSPSERVER service is already started
NetStat -l | grep cvspserver
The results are as follows:
TCP 0 0 *: CVSPSERVER *: * LISTEN
All the above results passed, but executed on my client (redhat9)
CVS -D: PServer: steven@192.168.211.72: / home / cvsroot login
After entering the password, return Connection Confuse Information
Supplement:
CVS -D: PServer: steven@192.168.211.72: / home / cvsroot login
After entering the password, no message is received, that is, it means successful
^ _ ^ no news is a good news !!
In the client, set the environment variable as follows:
Export CVS_RSH = SSH
Export cvsroot =: pserver: username @ ip: / home / cvsroot
You can
Echo $ CVS_RSH
SSH
Echo $ CVSROOT
: pserver: UserName @ ip: / home / cvsroot
So you can enter CVS login directly on the client.
Other operations can directly CVS Command