[cvsnt] CVS Use case

Matt Schuckmann matthew_schuckmann at amat.com
Fri Apr 22 00:34:09 BST 2005


I'm trying to pull together a process for using CVSNT in our development
group and everywhere I turn I keep running into problems.

I've been struggling with this for a while now and it doesn't seem like it
shouldn't be this hard, basically what I'm looking for is how people
actually use CVSNT in a real world group of developers from a process
perspective.

I look around the web and I find lots of specific information on how CVS
works, the command interface etc, or I find articles and posts on general
best CM practices but the details of how to use the real tool to accomplish
the best practice are always missing.



So what I'm looking for is someone that can tell me how they do it or that
can point me to some real world examples of how somebody does it and maybe
discuss the details a little bit.



I'm also looking for some input on how to use CVS to meet my top level basic
requirements:

1. When developers submit finished work to the CM system they need to
identify the changes made with some sort of label, tag, identifier, etc(lets
call it a Task Label). Knowing the state of the entire build that the
developer used to develop and test the work would be nice but is not
mandatory.



2. Developers need to be able to base their work on some minimally tested
build. And this can't be simply a nightly build of the development line tip,
building and testing of the software requires too much time and limited
resources to make this feasible, this sort of rules out the developers work
on the tip of some branch and don't break the tip paradigm.



3. Developers need to be able to check in unfinished work to the CM system
for safe keeping without adversely affecting other developers.



4. As developers work they need to be able to update their working
environments to the latest tested build, without losing the information of
what changes are specific to the task they are working on.



5. The release coordinator needs to be able to take a list of approved for
promotion Tasks and create a new build (we call this a Release Candidate
Build) which is a conglomeration of the previous build and the changes
associated with the approved Tasks. The new build should then be
appropriately labeled in the CM system for future retrieval for testing etc.



CVSNT appears to be a great and very flexible tool, and it seems like it
should be able to handle these requirements but I keep running into road
blocks and I want to know if I'm approaching it the wrong way or expecting
to much from it or...



One of biggest problems I have is how to accomplish requirement 1 in CVS.
Initially tags seem ideal but then not so much as they are geared more
towards project wide application and not individual files.



Branches for each task seem like a good fit except when you get into it you
run into trouble with the second part of requirement 4, you end up with the
potential of creating lots of extra revisions in files that aren't related
to the Task, not to mention the shear number of tags required for a project
of 8000 files.


Discussion, questions and suggestions are very welcome.

Thank you
Matt S.






More information about the cvsnt mailing list