info-cvs
[Top][All Lists]
Advanced

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

Re: CVS for version (not revision) control???


From: Todd Denniston
Subject: Re: CVS for version (not revision) control???
Date: Tue, 07 Dec 2004 08:08:07 -0500

address@hidden wrote:
> 
> What's a good way to do the following via CVS,
> if it can be done at all. By "good" I mean
> straight-forward and efficient. Just wondering
> if someone has done this before.
> 
> I have a proj, with subdirs. Say for now each
> subdir contains a set of files that produce an
> executable. I want to be able to "version" each
> executable independently, while ALSO versioning
> the entire project.
> 
>         ../proj/subdir1/exec1
>       ../proj/subdir2/exec2
> 
> Currently, I just tag my project branch at a
> certain point, and call that my project version.
> So project version may be rel-041206. But exec1
> may be v2.0, exec2 at v2.9 for example. So now
> I release project version rel-041210. I want it
> to have exec v2.0 (same as before) but exec1
> version v3.0.
> 

assumptions
1) you can write some scripts to automate some of this.

cvs checkout proj #with options to get exec1 at v2.0 code
echo "appropriate data indicating tag v2_0 indicates version v2.0"\
 >> proj/subdir1/versionlist.txt
cvs commit -m "version to v2_0" \
 >> proj/subdir1/versionlist.txt
cvs tag v2_0 proj/subdir1/
cvs release -d proj
#I would have a script to do the above, lets call it VersionSub1

cvs checkout proj #with options to get exec2 at v2.9 code
echo "appropriate data indicating tag v2_9 indicates version v2.9"\
 >> proj/subdir2/versionlist.txt
cvs commit -m "version to v2_9" \
 >> proj/subdir2/versionlist.txt
cvs tag v2_9 proj/subdir2/
cvs release -d proj
#I would have a script to do the above, lets call it VersionSub2

cvs checkout -rv2_0 proj/subdir1/
cvs checkout -rv2_9 proj/subdir2/
echo "appropriate data indicating rel-041206 is being made" \
>> proj/versionlist.txt
cvs commit -m "rel-041206 being made of exec1 v2.0 and exec2 v2.9"\
>> proj/versionlist.txt
cvs tag rel-041206 proj
cvs release -d proj

cvs checkout proj #with options to get exec1 at v3.0 code 
#I prefer to do these checkout+tag when the HEAD is the version, 
#and use clue-bats where appropriate to keep people out while I am doing it.
#I also know that is not always possible.
VersionSub1 3.0 #script will mangle version to fit local conventions


cvs checkout -rv3_0 proj/subdir1/
cvs checkout -rv2_9 proj/subdir2/
echo "appropriate data indicating rel-041210 is being made" \
>> proj/versionlist.txt
cvs commit -m "rel-041210 being made of exec1 v3.0 and exec2 v2.9"\
>> proj/versionlist.txt
cvs tag rel-041206 proj
cvs release -d proj
#I would probably even have a script that could do most of 
#the above when passed something like "MakeRelease 041206 exec1_3_0
exec2_2_9"

It all becomes more straight-forward and efficient the better you write your
scripts and procedures.

-- 
Todd Denniston
Crane Division, Naval Surface Warfare Center (NSWC Crane) 
Harnessing the Power of Technology for the Warfighter




reply via email to

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