Hello Again DC2'ers,

I skipped a step in the description of branch creation and checkout. It is
updated below.  

Robyn

---------------------------------------------------------------------------

I've built a new DC2 repository from the remnants of the DC1 repository.
The structure is quite different from DC1 and is tuned for the pipeline 
fabricator who does not want/need the entire source tree.

For DC2, the various pipelines and support libraries are considered
separate projects within the SVN repository.  To see what DC2 projects 
have been defined, type:
    setenv SVN svn+ssh://<your account>@lsstarchive.ncsa.uiuc.edu
    svn list $SVN/DC2

Using the SVN standard project setup, each project has three well-known
directories which serve to snapshot the project at different milestones:
'trunk'     primary source development occurs on the 'trunk'.

'branches'  transient spurs 'svn copied' from the trunk enabling development
            isolated from other programmer's changes on the trunk.  The spurs
            are optimally short-lived since merging the source back onto the
            'trunk' becomes increasingly tedious the longer the spur is 
            isolated.

'tags'      versioned snapshots used for releases. They are 'svn copied'
            into the 'tags' directory from the 'trunk'.

To checkout a personal working copy of a project's primary source tree, type:
    svn checkout $SVN/DC2/<project>/trunk <local name of choice>

For example, assuming I wanted to work on the current version of the 
image processing pipeline, I would extract the 'imageproc' project:
    mkdir MyTrunk       # dirname provides at-a-glace source provenance info
    cd MyTrunk
    svn checkout  $SVN/DC2/imageproc/trunk imageproc
    cd imageproc

If I planned on an extensive revision and I wanted to ensure no modification
conflicts during my development, then I would create a transient 'branches'
copy.
    mkdir MyBranch      # dirname provides at-a-glace source provenance info 
    cd MyBranch
    svn copy $SVN/DC2/imageproc/trunk $SVN/DC2/imageproc/branches/FixImageProc
            -m "Creating branch for ImageProc upgrade on ..."
    svn checkout $SVN/DC2/imageproc/branches/FixImageProc imageproc
    cd imageproc

When the upgrade is ready, the branch needs to be merged back into
the main trunk.  The merge process is described clearly in the online SVN
book (http://svnbook.red-bean.com/). Refer to "Chapter 4: Merging a Whole 
Branch to Another" for a step by step discussion.

A good resource for CVS users who want a quick introduction to SVN, is the 
"CVS to SVN Crossover Guide" 
(http://svn.collab.net/repos/svn/trunk/doc/user/cvs-crossover-guide.html).


_______________________________________________
LSST-data mailing list
[email protected]
http://www.lsstmail.org/mailman/listinfo/lsst-data

Reply via email to