Which is not something that will always happen. I don;t know how to explain that to you.
We don't get frequent enough committs, therefore we don;t get builds of substance, I need to rectify that.
This is HOW everyone in the world uses CVS, regardless of whther we have a dev branch, we need to get more code in more often. A "stable" branch gives us some comfort in the fact that anything that goes in there has been peer reviewed (at least that's my thought on the review process, also open for discussion), and guarantees we get code into our hands. CVS is "Concurrent Version System" that means it EXPECTS more than one person to be working on the code. THat's WHY you update before you committ, to catch changes. It's a collaboration tool.
Bad committs get rolled back, that's how it works. The seperate branch was a SUGGESTION on how to mitigate the whole "in progress code" problem that everyone seems to be afraid of and convince people to get their code in more often. There's unit testing, then there's fear of the unknown. The ONLY way to get some of this tested is if people have it.
It's supposed to be my job to get code in. This is how I want to manage it. We use CVS and rollbacks to make sure your issue doesn;t happen. We're not lowering any standards. If anything, we're raising them. Code gets reviewed by people more often, suggestions for making it better can be made in context.
Collaboration.
Useful subsection from CVS documentaion, if you are REALLY afraid someone will muck up something you are currently working on, lock the files (warning, I WILL unlock files if they remain locked for an inordinate amount of time, use this feature sparingly):
3.11.2 Understanding Locking and the Reserved Checkout Model
As stated in Section 3.11, cvs does provide a mechanism to support the reserved checkout model. The lock command is the basis of this model. Locking a file in cvs prevents another developer from either locking or committing a new version of the file. This is safe in that it does prevent the other developer from checking in a new version of the file but it does allow another developer to edit the file. This could lead to frustration, for example, if a developer forgets to get a file lock but just edits the file. When the developer attempts to commit the file, the operation will fail as shown in the following example:
cvs -q commit -m "This is the change from user 2\n\n" gascal.c (in directory E:\WorkAreaTwo\EtchPM\src)
cvs [server aborted]: Revision 1.7 is already locked by apples
*****CVS exited normally with code 1*****
If all developers cooperate and ensure that files are locked prior to editing, this situation need not arise. Alternatively, the unreserved checkout model could be used.
As with other commands, WinCvs provides several ways to invoke the lock command:
Select the file(s) using the left mouse button and use Selections menu:
Selections->Monitors selection->Lock selection
Select a file using the right mouse button and choose Monitors selection->Lock selection
Select the file(s) using the left mouse button and use the tool bar icon:
Use the unlock command to unlock the file in one of several ways:
Select the file(s) using the left mouse button and use Selections menu:
Selections->Monitors selection->Unlock selection
Select a file using the right mouse button and choose Monitors selection->Unlock selection
Select the file(s) using the left mouse button and use the tool bar icon:
If a lock request succeeds, the following messages will be displayed on the status window:
cvs -q admin -l gap_lp.c (in directory E:\WorkAreaTwo\EtchPM\src)
RCS file: /Store/200mm/EtchPM/src/gap_lp.c,v
1.2 locked
done
*****CVS exited normally with code 0*****
If a lock request fails, information including the owner of the lock will be displayed:
cvs -q admin -l gascal.c (in directory E:\WorkAreaTwo\EtchPM\src)
RCS file: /Store/200mm/EtchPM/src/gascal.c,v
cvs [server aborted]: Revision 1.7 is already locked by apples
*****CVS exited normally with code 1*****