CVS kent source tree control
From genomewiki
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 # 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.