CVS kent source tree control: Difference between revisions

From genomewiki
Jump to navigationJump to search
No edit summary
(Links changed from .soe or .cse to .gi, links validated)
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
See also:  kent/src/product/README.* [[Source_Control]],
NOTE: These are obsolete instructions.
We use git now. See http://genome.ucsc.edu/admin/git.html
Use the following procedures to create you own personal copy of the
Use the following procedures to create you own personal copy of the
kent source tree where you can have your own edits to the source tree
kent source tree where you can have your own edits to the source tree
Line 17: Line 22:
files.  Check them in.  In particular, see the file: config
files.  Check them in.  In particular, see the file: config


... somewhere else, for example /scratch ...
Somewhere else, for example /scratch:
<pre>
<pre>
$ cd /scratch
$ cd /scratch
Line 30: Line 35:
Fetch the kent source tree without expanding the ID keywords, note the -kk argument
Fetch the kent source tree without expanding the ID keywords, note the -kk argument
<pre>
<pre>
$ CVSROOT=:pserver:anonymous@genome-test.cse.ucsc.edu:/cbse
$ CVSROOT=:pserver:anonymous@genome-test.gi.ucsc.edu:/cbse
$ export CVSROOT
$ export CVSROOT
$ cvs login
$ cvs login
Line 67: Line 72:
Now you can check out a local copy of the jksrc tree
Now you can check out a local copy of the jksrc tree


... somewhere else, for example /scratch ...
Somewhere else, for example /scratch:
<pre>
<pre>
$ cd /scratch
$ cd /scratch
Line 82: Line 87:
Fetch the kent source tree without expanding the ID keywords:
Fetch the kent source tree without expanding the ID keywords:
<pre>
<pre>
$ CVSROOT=:pserver:anonymous@genome-test.cse.ucsc.edu:/cbse
$ CVSROOT=:pserver:anonymous@genome-test.gi.ucsc.edu:/cbse
$ export CVSROOT
$ export CVSROOT
$ cvs login
$ cvs login
Line 105: Line 110:
same vendor tag JKSRC_DIST and new release tag JKSRC_141
same vendor tag JKSRC_DIST and new release tag JKSRC_141
<pre>
<pre>
$ cvs import -m "Import of jksrc v141" jksrc JKSRC_DIST JKSRC_141
$ cvs import -m "Import of jksrc v141" jksrc JKSRC_DIST JKSRC_141 \
    > ../import.out 2> ../import.err
</pre>
</pre>
Check the two result files import.out and import.err for any conflicts.  A no-conflict import will say:
<em>No conflicts created by this import</em>
There shouldn't be any conflict problems at this point since this import
is the kent source tree again.  It shouldn't have any conflicts with itself.
No longer need the /scratch/kent/ hierarchy
No longer need the /scratch/kent/ hierarchy
<pre>
<pre>
Line 112: Line 125:
</pre>
</pre>


update your existing source tree ! AND HANDLE CONFLICTS as usual !
Update your existing source tree and <em>watch for conflicts</em> with
... in your local working copy of the source tree
this update.  Conflicts here would be between your source changes and
the kent source tree.  The output of the report will indicate which
files have conflicts.  <em>AND</em> the conflicts will leave hidden
files in the directories where the conflict happens.  These hidden
file names are of the form: .#file.name.1.2.3.4
 
In your local working copy of the source tree:
<pre>
<pre>
$ cd /scratch/jksrc
$ cd /scratch/jksrc
Line 121: Line 140:
and check those files in.
and check those files in.


See also: [http://ximbiot.com/cvs/wiki/ ximbiot.com]
See also: [http://ximbiot.com/ ximbiot.com] for more CVS documentation and examples.


[[Category:Browser Development]]
[[Category:Browser Development]]

Latest revision as of 20:51, 24 September 2018

See also: kent/src/product/README.* Source_Control,

NOTE: These are obsolete instructions. We use git now. See http://genome.ucsc.edu/admin/git.html

Use the following procedures to create you own personal copy of the kent source tree where you can have your own edits to the source tree that are not part of the development at UCSC. For example, mirror sites that have their own customization in the source tree for local circumstances.

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.gi.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.gi.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 \
    > ../import.out 2> ../import.err

Check the two result files import.out and import.err for any conflicts. A no-conflict import will say:

No conflicts created by this import

There shouldn't be any conflict problems at this point since this import is the kent source tree again. It shouldn't have any conflicts with itself.

No longer need the /scratch/kent/ hierarchy

$ rm -fr /scratch/kent

Update your existing source tree and watch for conflicts with this update. Conflicts here would be between your source changes and the kent source tree. The output of the report will indicate which files have conflicts. AND the conflicts will leave hidden files in the directories where the conflict happens. These hidden file names are of the form: .#file.name.1.2.3.4

In your local working copy of the source tree:

$ cd /scratch/jksrc
$ cvs -q update -P -d > cvsupdate.stdout 2> cvsupdate.stderr

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

See also: ximbiot.com for more CVS documentation and examples.