CVS kent source tree control

From genomewiki
Revision as of 20:51, 17 August 2006 by Hiram (talk | contribs)
Jump to navigationJump to search

Starting an initial CVS local repository. The location /scratch/cvsroot/ is merely an example here. You will want this in some location that is backed up. It will be your master copy of your source tree.

$ CVSROOT=/scratch/cvsroot
$ export CVSROOT
$ cvs -d $CVSROOT init

If you want to modify any characteristics of your cvs system, do a checkout of CVSROOT project and edit the configuration files. Check them in. In particular, see the file: config

... somewhere else, for example /scratch ...

$ cd /scratch
$ cvs co CVSROOT

Creates the directory hierarchy /scratch/CVSROOT/ edit any files here, check them in to change your local CVS behavior Usually no changes are required

Importing the kent source tree:

Fetch the kent source tree without expanding the ID keywords, note the -kk argument

$ CVSROOT=:pserver:anonymous@genome-test.cse.ucsc.edu:/cbse
$ export CVSROOT
$ cvs login
password: genome
$ cd /scratch
$ cvs co -kk -rbeta kent

creates the directory hierarchy /scratch/kent/

Back to your local CVSROOT

$ CVSROOT=/scratch/cvsroot
$ export CVSROOT

go the the above checked out source tree in the directory ./kent/

$ cd /scratch/kent

check what version we are importing

$ cat src/hg/inc/versionInfo.h

using that version number, import this release calling the project jksrc labeling it with the vendor tag JKSRC_DIST and release tag JKSRC_140 These tags are important. The vendor tag will be used next time you import the source tree again.

$ cvs import -m "Import of jksrc v140" jksrc JKSRC_DIST JKSRC_140

No longer need the /scratch/kent/ hierarchy

$ rm -fr /scratch/kent

Now you can check out a local copy of the jksrc tree

... somewhere else, for example /scratch ...

$ cd /scratch
$ cvs co jksrc

creates the directory hierarchy /scratch/jksrc/

This source tree is your local copy. Edit as you desire. Check in your own changes. Build your sources here.

The next time you want a kent source update, do the same procedure as above for the import, using the same vendor tag but with a new release tag.

Fetch the kent source tree without expanding the ID keywords:

$ CVSROOT=:pserver:anonymous@genome-test.cse.ucsc.edu:/cbse
$ export CVSROOT
$ cvs login
password: genome
$ cd /scratch
$ cvs co -kk -rbeta kent
  1. creates the directory hierarchy /scratch/kent/

Back to the local CVSROOT

$ CVSROOT=/scratch/cvsroot
$ export CVSROOT
$ cd /scratch/kent

check what version we are importing

$ cat src/hg/inc/versionInfo.h

using that version number same project name jksrc same vendor tag JKSRC_DIST and new release tag JKSRC_141

$ cvs import -m "Import of jksrc v141" jksrc JKSRC_DIST JKSRC_141

No longer need the /scratch/kent/ hierarchy

$ rm -fr /scratch/kent

update your existing source tree ! AND HANDLE CONFLICTS as usual ! ... in your local working copy of the source tree

$ cd /scratch/jksrc
$ cvs -q up > cvsupdate.stdout 2> cvsupdate.stderr

examine the two outputs for conflict messages. Resolve the conflicts and check those files in.