[cvsnt] Request for info about setting up master/slave repositories

Tony Eva teva at Airspan.com
Wed Oct 22 11:41:50 BST 2008


Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.


Hi,

I'm attempting to set up the repository sync feature in 2.5.04 build 3155 (RC8) on a pair of Ubuntu 8.04 (Hardy) boxes and I'm not able to get it working properly.  I gather that there is no documentation for this feature yet, other than Arthur's helpful email at http://www.cvsnt.org/pipermail/cvsnt/2008-May/030642.html.

The situation so far:

1. I've set up two test servers (cvs1 and cvs2) with cvs1 being the master, cvs2 being the slave.  The PServer files for each are:

cvs1 (master):

Repository0=/home/cvs/repo
Repository0Name=/home/cvs/repo
Repository0Description=CVS master repository
Repository0Default=1
Repository0Publish=1
Repository0Online=1
CertificateFile=/etc/cvsnt/cvs1.crt
PrivateKeyFile=/etc/cvsnt/cvs1.key

cvs2 (slave):

Repository0=/home/cvs/repo
Repository0Name=/home/cvs/repo
Repository0Description=CVS slave repository
Repository0Default=1
Repository0Publish=1
Repository0Online=1
Repository0Type=3
Repository0RemoteServer=cvs1.airspan.com
Repository0RemoteRepository=/home/cvs/repo
Repository0ProxyPhysicalFiles=/home/cvs/repo
Repository0ProxyPasswdFiles=1
CertificateFile=/etc/cvsnt/cvs2.crt
PrivateKeyFile=/etc/cvsnt/cvs2.key

Everything else is left at the default value (i.e. as it is in PServer.example).

The certificate and private key files were generated using contrib/genkey on each machine. The same info (country code, state, city, org, etc) were entered in each case.


2. At this stage I am not bothered about setting up the rsync from cvs1 back to cvs2, I just want to get the slave passthrough operation working so that I can see tags and commits on the slave appear in the master's repository files. Once that's working I can get the rsync set up. So to start with I have simply duplicated the repository files from cvs1 to cvs2.


3. With this setup, I can go to a third client machine (which can see both cvs1 and cv2) and do checkouts from the master cvs1 directly (after logging in):

$ cvs -d:sserver:teva at cvs1:/home/cvs/repo co -d repo.cvs1 repo ........ works fine

and also from cvs2, from the slave repo:

$ cvs -d:sserver:teva at cvs2:/home/cvs/repo co -d repo.cvs2 repo ........ works fine

so the :sserver: keys and so on seem to be set up correctly on each machine, and the read proxy operation seems to work fine from cvs2.


4. However, if I modify a file in the repo checked out from cvs2 and try to commit it, to test the write passthrough and sync protocol, I get

$ cvs commit -m "Test" a.c
Read data failed (5): Server dropped connection.
cvs [server aborted]: Error reading from server cvs1.airspan.com: -1

and the master repo on cvs1 is not touched at all.

(A ping from cvs2 to cvs1 works so the name can resolved OK.)




Can anyone point me in the right direction to diagnose what the problem is?  One thing I have not set up is the ServerPassphrase and Repository0RemotePassphrase fields in PServer (neither for cvs1 nor cvs2), because I have no idea what to put in them... genkey didn't ask for a passphrase when generating the keys, and since the :sserver: logins, checkouts and updates work on cvs2, and login, checkout, update and commit work on cvs1, I guess they're not required.

Any help would be greatly appreciated.  I'll even offer to create a wiki entry for this if I can get it going... :-)

--
Tony Eva



More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook