From Fedora Project Wiki

Fedora Merge CVS Merge Plan

This should all be done now.

As part of the merge, we are going to be migrating to the use of /cvs/pkgs as opposed to either /cvs/dist or /cvs/extras. Note that /cvs/extras will continue to function on cvs.fedora, but should be migrated away from over time.

These are the mechanics which should be needed to do the change on the server side.

Disable access to various things and disable automated tasks

  • Turn off cvspserver - not done, should be unnecessary (notting)
  • Put in place avail of no-one on /cvs/extras - done via commitinfo (notting)
  • Put in place avail of no-one for /cvs/dist/CVSROOT - done via commitinfo (notting)
  • Disable cvs.devel -> cvs.fedora sync of /cvs/dist - done (notting)
  • Turn off backup on ext-backup.devel done (notting)

Make a backup of what we're going to be changing; ensure that we're synced

  • mkdir /export/VCS/backup done (notting)
  • tar -cj -f /export/VCS/backup/cvsextras.tar.bz2 /cvs/extras done (notting)
  • backup of /repo shouldn't be needed as having more bits hardlinked there isn't problematic
  • Ensure that we're synced to cvs.devel's /cvs/dist done (notting)

Basic setup type things, all on cvs.fedora all done (notting)

  • ln -s /cvs/extras /cvs/pkgs
  • Add to xinetd config as an allowed root on cvs-int
  • add repopkgs.conf for cvs-int http config
  • ln -s /repo/extras /repo/pkgs
  • cp -rl /repo/dist/* /repo/pkgs
  • update of Makefile.common to point to correct path
  • update upload.cgi for new path (? is this needed)

Now for the scary part. This will do copies of devel branches for everything that we know needs it. We'll do output prefixed with WARN: for things that we're not sure of and that thus need manual intervention. This is currently about 50 packages

for i in /cvs/dist/rpms/* ; do
if [ ! -d $i/devel ] ; then
continue;
fi ;
if [ -d $i/devel -a -d /cvs/extras/rpms/$(basename $i)/devel ] ; then
if [ -d $i/FC-6 -a ! -d /cvs/extras/rpms/$(basename $i)/FC-6 ] ; then
echo "WARN: $i definitely needs manual attention";
else
echo "WARN: $i apparently not in FC-6" ;
fi ;
else
echo /usr/local/bin/setup_package $(basename $i)
echo mkdir -p /cvs/extras/rpms/$(basename $i)/devel ;
echo cp -rv $i/devel/* /cvs/extras/rpms/$(basename $i)/devel ;
fi
done | tee /tmp/cvscopy.out

DONE

For the packages which need manual attention, need to see if what's in /cvs/extras is newer than what's in /cvs/dist. If not, then do the actual process by hand for those packages. The "apparently not in FC-6" packages are likely moves from Core -> Extras and just need confirmation. (done - notting)

Final touches

  • adjust backup config on ext-backup.devel (done - notting)
  • re-enable access everywhere
  • cross fingers. hope like hell it works.

Open questions:

  • Need to fill owners.list with owners of Core packages so that acls get set up properly. Just get dump of owners + packages from koji/brew and format appropriately. (done - notting)

Future things:

  • Move from having /cvs/pkgs as the symlink to having /cvs/extras as the symlink (done - notting)
  • When we move to doing FC6 here, then we'll need to move over FC-6 branches of all packages that are part of FC-6 or FC-6 updates. We'll want to just get a list of these packages out of brew.