info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Help with CVS design


From: Chalmers, Tim
Subject: Help with CVS design
Date: Thu, 11 Oct 2001 16:12:22 -0500

Due to the constraints of some software that we have to use, I am forced
into a particular directory structure.  Multiple developers may need to work
on the same file.  Each developer has their own working directory.  For
example:

/export/component/src         this is the component src directory
/export/component/user1     these are where the developers are editing their
own copies of source
/export/component/user2

I am trying to automate the check in/ checkout process as much as possible.
I want to use the trunk as the baseline and branches for changes.

My checkout script does the following:
1.      Checkout the file from CVS into the component src directory
a)      If a branch tag is specified, check out from the branch
b)      If no tag, check out from the trunk
2.      Copy the file to the correct user directory.

The developer then makes changes and my check in script does the following
1.      copy the files from the user to the component/src directory
2.      Check the files into CVS using a branch tag specified

The merge back to the trunk comes later.  I use import to get all the files
in the component/src directory.

For my checkout, I am doing:
 cvs checkout  -d /component/src FileName.cpp if no branch is specified.  
 cvs checkout  -r CCN1 -d /component/src FileName.cpp  if a branch CCN1 is
specified.

In the first case, I want to get the latest version off of the trunk.  In
the second case, I want to get the latest version off of the CCN1 branch.
Both these statements appear to be checking out where ever the head is in
the current working directory.  How do I make sure that I am getting the
version that I want?

My Check in script does the following:
cvs  tag  -b CCN1 FileName.cpp");
cvs update -r CCN1 FileName.cpp
cvs commit -r CCN1 -m message FileName.cpp

What I want to happen is this:
Regardless of whether the file was checked out from a branch or the trunk,
commit the file with the branch specified.  If the branch already exists, I
want the commit to be the latest version of the branch.  If it does not
exist, I want to create a new branch, off of the trunk.  Once a commit is
done I want the developers to checkout again prior to editing files.


Obviously I am missing some subtleties of how CVS works and would greatly
appreciate any assistance.


-Tim





reply via email to

[Prev in Thread] Current Thread [Next in Thread]