Multiple checkouts (in Visual SourceSafe) are 'similar' to an unlocked repository, except you still have the concept of checking out.
Checking out a file doesn't stop other people checking out that same file, but it means:
a. When you check out, you get the latest file from the repository. THis means that the system knows at what point you started altering the file, and what state it was in when it gave it to you.
b. When you check the file back in, the system has an exact record of who changed what and when inbetween. So it doesn't need to scan the file your checking in to make sure you have any alterations you should have. It KNOWS straight away whether you need to do a merge - because it knows when you checked out, and if anybody else has checked out AND in since then.
At this point it would attempt to do an automatic merge. As long as their are no conflicts, it can handle all this automatically. You only have to start manually merging stuff in if there are conflicts - but this doesnt' actually happen as often as you might think...
It's probably best not to think of multiple checkouts as checking in and out as you know it (i.e. totally locking out other users) - it's more a system of marking when alterations are made by different users -combined with automatic code merging.
It's an unlocked system in the strictist sense, but it's a very safe and organised unlocked system.
I know it works - I've used it pretty much every day for the past 5 years!!
But anyway - this is probably irrelavent anyway. Sounds like the CVS system were using doesn't have this 'marking' concept - at least not to the same extent (and SourceSafe obviously isn't free!) - so we have to make do.
And who knows - maybe this system CAN accurately work out when things need merging and make sure someone can't just overwrite stuff. We can find this out through some fairly simple tests
If this is the case - all is good...
Last edited by RenegadeOfPhunk; 09-28-2003 at 03:06 PM.