[Top][All Lists]
[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