RE: Build environments using CVS
>--- Forwarded mail from [EMAIL PROTECTED] >Brian Blignaut wrote: >> Firstly let me say that if this is not the appropriate place >> to ask this question I apologize, I am just not sure where >> else to post. >Yes, this is the appropriate place to ask. >> I am trying to setup a build process that works >> with CVS tags and am having a bit of a problem. >> >> The Build Environment >> >> >> 1. Development - developer's adding/changing/fixing code >> 2. Testing - with software testers, and test data - TEST tag >> 3. Release - Software built for release to client - LIVE tag >> >> >> The Problem >> Deleting files from CVS retains the TEST, LIVE tags. As a >> result the files that not meant to be built are being >> included in TEST, LIVE builds. >It sounds to me like you are re-using the tags "TEST" and "LIVE". I'd >recommend using unique tags instead, e.g. proj-rev-x-y-build-z >If you really want to re-use TEST and LIVE tags, then you should use these >in conjunction with the unique tags. You will have to manually delete the >TEST and LIVE tags before you remove the file. You might want to write a >small script to do this, and encourage everyone to use the script rather >than directly issuing the command 'cvs remove'. >Actually, you can probably enforce this using the commitinfo script - if a >file is being removed, and it has a TEST or LIVE tag, the commitinfo script >can abort the commit with an error message telling the user to remove the >tags first. You might also consider using a change control method that's not based on tags. Search the info-cvs archives for "submit/assemble" for discussions on a handoff and integration method that can handle the addition and removal of files, and also collects changes in a way such that they can be reversed. This method has been used with great success on a number of projects of varying size. >--- End of forwarded message from [EMAIL PROTECTED] ___ Info-cvs mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/info-cvs
RE: Build environments using CVS
Brian Blignaut wrote: > Firstly let me say that if this is not the appropriate place > to ask this question I apologize, I am just not sure where > else to post. Yes, this is the appropriate place to ask. > I am trying to setup a build process that works > with CVS tags and am having a bit of a problem. > > The Build Environment > > > 1. Development - developer's adding/changing/fixing code > 2. Testing - with software testers, and test data - TEST tag > 3. Release - Software built for release to client - LIVE tag > > > The Problem > Deleting files from CVS retains the TEST, LIVE tags. As a > result the files that not meant to be built are being > included in TEST, LIVE builds. > > > The Details > > What I am trying to achieve is the ability to prevent files > from entering the "Testing" and hence "Release" phases. So > developers can make changes to existing source files and be > confident that their changes will not be built into the > "Testing" and "Release" phases until they are satisfied with > the changes. > > The problem I am having is that when files are deleted, they > still retain their TEST or LIVE tags and as such are updated > in to the "Testing" and "Release" environments, when this is > not desired. It sounds to me like you are re-using the tags "TEST" and "LIVE". I'd recommend using unique tags instead, e.g. proj-rev-x-y-build-z If you really want to re-use TEST and LIVE tags, then you should use these in conjunction with the unique tags. You will have to manually delete the TEST and LIVE tags before you remove the file. You might want to write a small script to do this, and encourage everyone to use the script rather than directly issuing the command 'cvs remove'. Actually, you can probably enforce this using the commitinfo script - if a file is being removed, and it has a TEST or LIVE tag, the commitinfo script can abort the commit with an error message telling the user to remove the tags first. -- Jim Hyslop Senior Software Designer Leitch Technology International Inc. ( http://www.leitch.com ) Columnist, C/C++ Users Journal ( http://www.cuj.com/experts ) ___ Info-cvs mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/info-cvs
RE: Build environments using CVS
Brian, >From what you have written, I am assuming: 1. by "Deleting files from CVS" you are moving the files to the Attic 2. you are using the "TEST" and "LIVE" tags to cvs export or checkout using the tag to create your build area 3. you are not removing TEST and LIVE tags before you move files to the Attic If these assumptions are true, your problem should be corrected if you remove the TEST and LIVE tags prior to placing files into the Attic, you could also remove the tags after the fact but it is easier first. To get a quick list of the files you have in the Attic you could use the following UNIX commands substituting the desired module name: cvs -q rlog -R module | grep "Attic/" > attic.list1 to remove the "Attic/" and ",v" from the attic.list1 you could use: awk '/Attic\//{sub(/Attic\//,"");sub(/,v$/,"");print}' attic.list1 > attic.list2 You would also need to remove the "$CVSROOT" from the beginning of each line using awk, sed, or an editor. Once you have a good attic.list file you could use a for statement (in the ksh) to remove each tag. First do this statement to check the contents of your attic.list file and the syntax of your typing. Note, the back tics around cat attic.list for file in `cat attic.list`; do echo "== $file =="; done If it echo the names of the files you want, add in a cvs rtag -d portion. for file in `cat attic.list`; do echo "== $file =="; cvs rtag -d TEST $file; done and do it again for remove the LIVE tag Hope my assumptions were correct. Dale Miller -Original Message- From: Brian Blignaut Sent: Wednesday, October 20, 2004 9:09 AM To: [EMAIL PROTECTED] Subject: Build environments using CVS Hi, Firstly let me say that if this is not the appropriate place to ask this question I apologize, I am just not sure where else to post. I am trying to setup a build process that works with CVS tags and am having a bit of a problem. The Build Environment 1. Development - developer's adding/changing/fixing code 2. Testing - with software testers, and test data - TEST tag 3. Release - Software built for release to client - LIVE tag The Problem Deleting files from CVS retains the TEST, LIVE tags. As a result the files that not meant to be built are being included in TEST, LIVE builds. The Details What I am trying to achieve is the ability to prevent files from entering the "Testing" and hence "Release" phases. So developers can make changes to existing source files and be confident that their changes will not be built into the "Testing" and "Release" phases until they are satisfied with the changes. The problem I am having is that when files are deleted, they still retain their TEST or LIVE tags and as such are updated in to the "Testing" and "Release" environments, when this is not desired. I understand that this is correct (and essential) CVS behavior, but is there anyway around this? Or is there another way to implement what I am trying to achieve. I have read the branches should be used for releases, but this still leaves me with the problem of not being able to selectively exclude files from the "Testing" and "Release" environments. Any help would be greatly appreciated. Yours truly, Brian ___ Info-cvs mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/info-cvs