Note: This web site is only kept up to date for OSG Software 1.2 (VDT 2.0.0). If you are looking for information for the most recent release, the RPM-based OSG Software 3.0, please see the OSG documentation web site

VDT CVS

SVN

NOTE:

On 2007-04-17 we migrated from CVS to SVN for the vdt_src and nightly-tests.what cvs directories. Please see the SVN information page. The CVS repository is still around, but changes should be checked in to SVN, not CVS.

The cvs2svn tool was used to convert the CVS repository to SVN. Commands used:

./cvs2svn -s /scratch/kronenfe/vdt_svn --keywords-off --trunk=vdt/trunk --branches=vdt/branches --tags=vdt/tags /scratch/kronenfe/vdt_cvs/vdt_src
./cvs2svn -s /scratch/kronenfe/vdt_svn --existing-svnrepos --keywords-off --trunk=tests/trunk --branches=tests/branches --tags=tests/tags /scratch/kronenfe/vdt_cvs/nightly-tests.what

CVS Repository

The VDT CVS repository is only available on UW-Madison CS computers—it is not currently exported in any way to the outside world. Well, it is on AFS, but no one outside the VDT team has permission to access it.

/p/condor/workspaces/vdt/vdt_cvs
Just in case you need it, the old CVS repository is at:
/p/condor/workspaces/vdt/old.vdt_cvs/

Structure

The root is the current development release. The stable release series is on a branch like V1_2-branch. Fixes to it are periodically merged to the trunk. Specific releases are on branches, like V1_2_3-branch. This follows Condor's naming conventions.

Checking out

Branch Command
Trunk (1.7.0) cvs -d /p/condor/workspaces/vdt/vdt_cvs co V1_7_0_ALL
1.6.1 branch cvs -d /p/condor/workspaces/vdt/vdt_cvs co -r V1_6_1-branch V1_6_1_ALL
1.2 branch cvs -d /p/condor/workspaces/vdt/vdt_cvs co -r V1_2-branch V1_2_4_ALL
1.2.4 branch cvs -d /p/condor/workspaces/vdt/vdt_cvs co -r V1_2_4-branch V1_2_4_ALL

After checkout you should have a directory called vdt_src created in your current directory. All packages are in subdirectories that are named with the package names. There is one package per subdirectory.

The Modules File

CVS has a special administrative module called CVSROOT. Inside that module is a file called modules which defines all of the modules for the repository. We define lots of alias modules to list the subdirectories that belong to each VDT version.

In general, the definition of an alias module looks like this:

ALIAS-MODULE-NAME -a COMPONENT-1 COMPONENT-2 ...

Each COMPONENT-n is a module name (previously defined) or directory within the repository. Here's a sample from the VDT's module file:

V1_5_0_ALL -a \ 
        V1_5_COMMON \ 
        vdt_src/Globus-Security-Update-1 \ 
        vdt_src/VOMS-Security-Update-1

In this example, the new V1_5_0_ALL module is an alias for all of the directories in the V1_5_COMMON module plus the two named subdirectories. The backslashes simply allow the definition to span multiple lines.

To exclude a directory — perhaps because we no longer need a particular directory but cannot delete it from CVS — just put a bang ('!') in front of the subdirectory to exclude:

V1_5_1_ALL -a \ 
        !vdt_src/EDG-Make-Gridmap/edg \ 
        !vdt_src/Perl-Modules/perl-modules-v4 \ 
        V1_5_0_ALL

Notes:

Branching

  1. Pick a name for your branch. It should start with the branch you're coming from (unless it's the trunk) and describe what the branch is for.
  2. cd <FROM-BRANCH> checkout area
  3. cvs rtag -r <FROM-BRANCH> <NEW-BRANCH>-root vdt_src
  4. cvs rtag -r <NEW-BRANCH>-root -b <NEW-BRANCH>-branch vdt_src
  5. Edit CVS_Tags in FROM-BRANCH, adding info about your new branch.
  6. cvs commit

Merging

Assuming we are merging from a branch called FROM-BRANCH to TO-BRANCH

  1. cd <TO-BRANCH> checkout area
  2. cvs update
  3. Choose name for tag that will be used to tag the end of <FROM-BRANCH> so that we can do future merges easily. Look in CVS_Tags to see if your branch has already been merged earlier. If so, take the merge tag and increment it. Otherwise, start with <FROM-BRANCH minus -branch>-merge-1. We'll call this new tag FROM-TAG. Edit CVS_Tags in TO-BRANCH to contain this tag.
  4. cvs rtag -r FROM-BRANCH FROM_TAG vdt_src
  5. If your branch was previously merged, do: cvs update -j PREVIOUS_FROM_TAG -j FROM_TAG. Otherwise do: cvs update -j FROM_TAG
  6. Find and fix all conflicts. ~nmueller/bin/conflicts will find them for you.
  7. Look over all diffs: cvs diff -u > diffs
  8. cvs commit