We're consolidating two old cvs servers onto one new box.
I had hoped the following:
changing the dns entries for oldserver1 and oldserver2 (as well as some user account maintenance) would make the move transparent to cvs users.
Problem:
I'm having problems due to the different cvs roots on each old server.
Background
The old servers had the following cvs repository directories:
- old server1 cvs root: /cvshome
- old server2 cvs root: /usr/local/cvs
On the distribution we're using the default repository directory is /var/cvs. I opted to stick with this, i.e:
- new server cvs root: /var/cvs
Goal
I'd like minimal disruption on existing checked-out-projects, i.e. not having to find/replace all 'Root' files on each hard drive in the company.
To clarify, CVSROOT and CVS/Root entries for old server1 look like this:
pserver:username@oldserver1:/cvshome
Attempts
I tried this:
create a symbolic link on new server
/cvshome points to /var/cvs
ln -s /var/cvs /cvshome
However, when I try an update (i.e. from a workstation that pointed to old server 1), I get this error:
/cvshome : no such repository
Summary
Can I use links to 'alias' a cvs repository?
OR do I need to 'bite the bullet' and change all 'Root' files on all hard drives?
thanks,
bill
Best Answer
On Linux, when you give a command the path to a symlink which points to a directory, it makes a difference whether you append a slash or not:
would list the inode of the symlink, while
would list the contents of the directory the symlink points to. This behaviour is different from the one you would see if cvsroot was an actual directory.
I'm not sure whether that's your problem, but try appending a slash. If it helps, you should be able to do checkouts, updates etc. of everything below the repository root.