info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Copying/duplicating a repository


From: sean dreilinger
Subject: Re: Copying/duplicating a repository
Date: Thu, 12 Jul 2007 12:31:11 -0700
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.4) Gecko/20070615 Thunderbird/2.0.0.4 Mnenhy/0.7.5.666

Simon Renshaw wrote:
> What is the best way to copy a repository?
> I want to make a copy of a production repository so we can do tests
> without affecting the real code.

disregarding issues of disk space and assuming you have admin/root access, you
can clone your cvs repository for testing purposes by copying it into a new 
tree:

  rsync -aPv /path/to/cvsroot_real/ /path/to/cvsroot_test/

now you've got a copy of your repository as /path/to/cvsroot_test and you can
have any designated testers configure their cvs clients or client commands to
use the test repository.

EXT Access

if you're using :ext: method to access the repository, test users should change
their CVSROOT spec from
  :ext:address@hidden:/path/to/cvsroot_real
to:
  :ext:address@hidden:/path/to/cvsroot_test
a sample checkout from the test repository might look like:
  cvs -d:ext:address@hidden:/path/to/cvsroot_test checkout modulename

PSERVER Access

if you're also using the :pserver: method to access the repository, you'll want
to configure your (x)inetd to permit the test cvsroot by adding the
--allow-root=/path/to/cvsroot_test to the cvspserver line in your
/etc/inetd.conf file. for example, if you have this line in /etc/inetd.conf:

  cvspserver stream tcp nowait cvs /usr/bin/cvs cvs \
  --allow-root=/path/to/cvsroot_real \
  pserver

change that to:

  cvspserver stream tcp nowait cvs /usr/bin/cvs cvs \
  --allow-root=/path/to/cvsroot_real \
  --allow-root=/path/to/cvsroot_test \
  pserver

after making this change, restarted inetd and ensure that cvs works normally for
the current repository.

then have anyone testing the new repository over :pserver: protocol change their
cvsroot from:
  :pserver:address@hidden:/path/to/cvsroot_real
to:
  :pserver:address@hidden:/path/to/cvsroot_test

a sample checkout from the test repository using pserver might look like:
  cvs -d:pserver:address@hidden:/path/to/cvsroot_test checkout modulename

if the pserver setup sounds confusing, i would dig into karl fogel's book here:
http://durak.org/sean/pubs/software/cvsbook/The-pserver-access-method-is-not-working.html
and navigate to the repository administration chapter if you need more details.


hth
-sean


-- 
sean dreilinger - http://durak.org/sean/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]