[cvsnt] Re: "cvs update" avoiding files with local changes?

Bo Berglund bo.berglund at telia.com
Thu Feb 23 07:01:10 GMT 2006


On Thu, 23 Feb 2006 13:35:48 +1300, "Trevor Leybourne"
<trevor.leybourne at aderant.com> wrote:

>Johan, 
>
>What you are talking about sounds similar to what some developers and I
>were discussing yesterday which I would like to suggest to March-Hare as
>a possible feature for CVSNT 2.6 or 2.7. 
>
>The concept is what Team System call a "Shelf", and the way it was
>explained to me is something like this and it makes a truck load of
>sense to me. 
>
>* A developer checks out a repository into a sandbox. 
>* Makes changes and the code is not ready to be committed, but for
>backup purposes the developer can "commit" the changes to the "shelf".
>It is stored in CVS, can be viewed in CVS but if someone else checks out
>the module or project those changes are NOT included. The developer can
>rollback to a previous "shelf" version if they want and can commit more
>changes to the shelf. 
>* At some point the "shelf" is committed as a normal committ. 

This is what CVS branches are for...

>The other advantage to this is the shelf can be used as a "review" check
>point. A developer commits his/her changes to the shelf and another
>developer or manager reviews the changes there before approving the
>changes to be committed to the main repository. 
>
>If a developer with shelf changes does a update, they would still get
>all changes committed to the repository. Any clashes with "shelf" copies
>would be merged in a normal fashion. 
>
>I guess rethinking this it is like a mini/temporary branch but without
>the overhead of creating and managing branches. 

Hmm, what "overhead"? Is the creation of the branch tag and the update
to the branch really "overhead"? It could easily be handled by the
batch file the OP was talking about.

On the branch the developer would be on his own and whtever he does
will not affect the TRUNK, but the update script used can also merge
in the TRUNK changes transparently.

>
>Using your example, a tester checks out the test plans and makes changes
>to one. Anyone else checking out does not get the changes made by the
>tester. At some point the testers test plan changes are approved to go
>into the repository and move from the shelf to the repository.  
>

And the final merge back to TRUNK can be performed by a project lead
with proper checks. In CVSNT you can set the permissions such that
*only* some people have permission to do the TRUNK writes.

I cannot understand why branches cannot be used in this case.


/Bo
(Bo Berglund, developer in Sweden)



More information about the cvsnt mailing list