[cvsnt] Difference between exclusive edit and resrved edit?

Bo Berglund Bo.Berglund at system3r.com
Mon Oct 20 13:05:54 BST 2008

We have been using CVSNT for a very long time now, but we have not used any form of special handling of binary files.
Now I am considering changing that so that binary files (at least some of them) will be handled via the detit-unedit cycle and to make it work I beieve I need to change the options of these files.

I have found the following possibilities:
cvs update -k+c file  to enforce cooperative reservation
cvs update -k+x file  to enforce exclusive reservation

Both are to be followed by a command to send the change to the server:
cvs -f commit -m "message2 file

What I can't quite grasp is the difference between these two options....

What should I use in a scenario where we have binary library files that are *used* by all developers but where sometimes one of the developers needs to change the library and therefore needs to ensure that nonone else can get the edit token until he has committed his changes?

The concurrent edit model with all files checked out read/write obviously does not fit the bill.
And the exclusive checkout used by other version control systems is also no good because all of the developers need a copy of the library files locally, albeit readonly.

I tried to find some read on this but came up emptyhanded, except for an erroneous posting by Arthur B from 2007-12-20 20:08 titled "Re: strange behaviour while using reserved edit". The error is in the command following the update where commit is omitted...

But is there somewhere a good description on the use of the various options?

The "Change File Options" macro in WinCvs is strange in that it has a selection for "Force reserved edit" that expands to -kbc and none for "Force exclusive edit". In fact the exclusive edit would have been expanded to -kbx but is commented out in the SubstModeTk.py file.

If one wants to have a binary file stored as deltas AND also using the reservation discussed above, what is the command to do this?

Bo Berglund

More information about the cvsnt mailing list