RE: Build environments using CVS

2004-10-21 Thread Paul Sander
>--- 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

2004-10-21 Thread Jim.Hyslop
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

2004-10-20 Thread Miller Dale C Contr AFWA/SDHS
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