We have a CVS repository on linux and Tortoise CVS users on windows. Sometimes we need to move our repository and users start seeing the subject error. Wasted time looking into it, has to do with UTF-8 stuff going from linux to windows… Apparently it can be safely ignored in the modern versions of Tortoise CVS, don’t waste your time with it!
Another issue with the CVS move is changing all the CVS Root files to reflect the new hostname; this blog post has the right answers. Created the changeroot.sh file and updated our newly located branches to know where they belong.
First off we need to change the CVS Root for the working copy. Here’s the script that will do the job:
#!/bin/bash
# Test whether we got an argument for the new CVS Root value - exit if not
# -z is a bash conditional experssion that returns true
# if the has a zero length
if [ -z "$1" ]; then
echo "
You must supply a new value for CVSRoot
usage: $0
Examples:
To change to an external repository accessed via ssh:
./changerepository.sh :ext:crb@webdevcvs:/Users/Shared/cvsrep
To change to a local repository:
./changerepository.sh /Users/Shared/cvsrep
"
exit
fi
# if we were passed a new CVS Root value on the command line, assign it to
# the newRoot variable
newRoot=$1
# walk the current directory (find . ) and if the path matches */CVS/Root,
# slap the new CVS Root into the files found
find . -path "*/CVS/Root" | while read f; do
echo $newRoot > $f
done
To run this script and change the root, copy and paste the code into your favourite text editor, save it as changeroot.sh in the root directory of your working copy and chmod it to be executable. You can then run it using
./changeroot.sh [newcvsrootvalue]
Where [newcvsrootvalue] is the name of your new CVS Root, for example:
./changeroot.sh :ext:me@newrepository.net:/usr/local/cvsrep
If its just the host name of your repository that has changed, you’re done
thank you solarorange 🙂