Which version control system is best for * preventing * simultaneous editing?

We have been using CVS (with the TortoiseCVS interface) for many years both for version control and for extensive document management (including binary files such as Word, Excel, Framemaker, test data, simulation results, etc.). Unlike conventional version control systems, in 99% of cases we want to prevent simultaneous editing - when the user starts editing the file, the preliminary version of the file becomes available only to everyone else.

Many of the people who will use this are not programmers or even a savvy computer, so we are also looking for a system that allows people to simply add documents to the repository, check and edit the document (if only someone else is currently editing it), and check it back with minimal clutter.

We got this to work with CVS + TortoiseCVS, but now we are considering Subversion and Mercurial (and open to others if they are better suited) for better version tracking, so I was wondering one of the most secure lock files. For example, we would like the exclusive lock to be turned on by default, and we want to make it so difficult that someone accidentally starts editing a file that someone else checked. For example, when someone checks a file for editing, they first check the source database, even if they have not yet updated their sandbox. Perhaps even he will not allow the user to check the document if he is disconnected from the network and cannot register with motherhood.

+6
version-control svn mercurial cvs
source share
8 answers

Subversion offers forced locking. When the Propoerty svn:needs-lock parameter is set, the file is read-only and the user needs to lock it to get a writable working copy. No other user can get the same file from him.

+10
source share

I know this is not on your list, but we were pleased with Perforce. You can prevent multiple checks with

A Perforce administrator can use the p4 typemap command to ensure that all files of the specified type (for instance, // depot /.../*. Gif for all .gif files) can be opened by only one user at a time. See the Perforce Command Reference for details.

+5
source share

Sounds like Subversion with TortoiseSVN will fit the bill. As Arne Burmeister mentioned, you can use the default needs lock mode, where each file will be read-only until you commit it. Using hooks, you can tell other users when the file is locked or unlocked.

TortoiseSVN integrates with Windows Explorer, so it requires a little computing technology.

Note that Subversion has a β€œtheft lock” feature, but you can disable it if you want using the PreLock hook.

+4
source share

You mention Mercurial, and despite being a Mercurial developer, I have to agree with the suggestions for using Subversion. Mercurial - all this allows people to develop in a distributed way. This includes the creation of private commits that will only be transferred to others later. In other words, Mercurial does not try to block files on a central server (there is not even a central server concept).

Go with Subversion, it will be such a wonderful centralized version control system that you will find (I just tried open source systems, I don't know anything about closed source systems). If you want, you can experiment with hgsubversion from the side.

+2
source share

I know that IBM ClearCase prevents this. We use it for this reason in our company.

+1
source share

If these are just documents (e.g. word, excel, etc.), you could take a look at Alfresco Document Manager, this is a pretty simple use.

http://www.alfresco.com/products/dm/features/

0
source share

Original RCS. When checking a file, you block it: "co -l filename". After that, until you check it back ("ci filename"), nobody will be able to modify the file.

0
source share

I don’t think any distributed version control like mercury or git will work for you here. SVN has only the most basic functions for locking - and the file is set as read-only, which, for example, in some office tools, means that you can edit it, and then find that you cannot save it until you check it, then you check it to see if the server version is different, and you either lose the server version or your local version.

I cannot believe that I am saying this, but if you want to work this way, then the visual source is safe - the only system I know is similar to this. If you want a more modern / reliable version, look at SourceGear Vault - although they have made great efforts to do something similar to vss, they worked well in the svn environment.

But perhaps a special document management solution would be better - or perhaps even something like a portal.

0
source share

All Articles