Subject: HEADS UP: repository split From: Peter Wemm Date: Fri, 28 Feb 2003 12:09:40 -0800 To: developers@freebsd.org As of this morning, the repository has been split. You probably have noticed the flurry of suspicious commit messages and the unusual cvsup logs. First of all, the end-user impact of this should be pretty minor. The repositories are re-merged via cvsupd magic. A synthetic CVSROOT is supplied that contains a superset of all the modules files. This means that folks using cvsup should pretty much be able to keep on doing things exactly as before. For developers a few additional changes are needed. When you commit, you will likely need to use a different CVSROOT. If you have aliases to do remote commits from a checked out local tree, you will need to update the aliases. If you use the addport program on your local system, you will need to update that too. Each repository has its own CVSROOT and access lists, but there is currently no distrinction between them. I will explain this some more later on. If you exist in any access list, you can commit anywhere still. The "correct" CVSROOT settings are: user@ncvs.freebsd.org:/home/ncvs (src, distrib) user@pcvs.freebsd.org:/home/pcvs (ports) user@dcvs.freebsd.org:/home/dcvs (www, doc) user@projcvs.freebsd.org:/home/projcvs (free for all) The hostname part doesn't really matter.. you can use ncvs.freebsd.org for everything, or even repoman.freebsd.org if you want. However, you should use the official names in case the cnames ever point to seperate machines. This is *not* on the agenda though. I will be making a few more CVSROOT/* tweaks over the next day or so to deal with access lists. What will be happening is that the new tag line that distinguishes the different repositories will get an extra marker if you commit somewhere that you're not listed for. For example, a src-only committer who commits to the ports tree will have: FreeBSD ports repository (src committer) in the commit message. I do not intend to enforce any additional restrictions than that as it would be counter-productive. Nobody wants to stop folks from doing good stuff. There is an experimental root/* directory in the merged cvs repository. I've done this in case there is some need to use cvs with a 'real' CVSROOT on replicated repositories. There are a few symlinks in there so it should be possible to append 'root/src' to your normal local CVSROOT so that the cvs binary can see the real CVSROOT directory instead of the synthetic top-level one. I do not know of any reason that this might be needed, but it is there in case. Things like cvsweb may need minor configuration tweaking, depending on how and where they run. Other than that, this should only really affect committing. When using your regular cvsup tree, things should be business as usual. Cheers, -Peter -- Subject: Re: HEADS UP: repository split From: Peter Wemm Date: Fri, 28 Feb 2003 12:58:30 -0800 To: developers@freebsd.org A quick note about something that has come up. If you have a ports/www/doc tree checked out from repoman via remote cvs, then it will have stored the original $CVSROOT in ./CVS/Root in each subdirectory. The catch is that CVS/Root overrides $CVSROOT. If you are seeing messages like this: %cvs update cvs server: Updating . cvs server: failed to create lock directory for `/home/ncvs/www' (/home/ncvs/www/#cvs.lock): Permission denied cvs server: failed to obtain dir lock in repository `/home/ncvs/www' cvs [server aborted]: read lock failed - giving up .. then you're trying to do a checkout from the wrong repository for one reason or another. Check the CVS/Root files, your $CVSROOT, any aliases etc. If you need to update your *checked out* CVS/Root files, you may find this handy: find ports -name Root | xargs perl -pi -e 's/ncvs/pcvs/g' find doc www -name Root | xargs perl -pi -e 's/ncvs/dcvs/g' This will update the CVS/Root files. Try this instead of checking out a fresh copy please. If you're logged into a cluster machine and are reading the repository via NFS, you *can* read the ports/doc/www areas from /home/ncvs since you would be using cvs -R (readonly) which avoids the locking. Cheers, -Peter --