Source Control for Everyone?
I’ve got a number of non-technical users that all share a set of project files. It would be ideal to have them using version control, but I think that both subversion and git are too technical for non-technical office staff.
Is there any distributed source control software that would work well for normal people?
11 Solutions collect form web for “Source Control for Everyone?”
If source control is too technical they can use Subversion with WebDav.
The less technical people will just save files normally from whatever application they use, without worrying/thinking about source control. They get the benefit of auto-versioning without doing anything.
When ever they need more functionality they can learn to use TortoiseSVN to view diffs, revert to old version that were made automatically for them etc…
From the subversion book :
Because so many operating systems already have integrated WebDAV clients, the use case for this feature borders on fantastical: imagine an office of ordinary users running Microsoft Windows or Mac OS. Each user “mounts” the Subversion repository, which appears to be an ordinary network folder. They use the shared folder as they always do: open files, edit them, save them. Meanwhile, the server is automatically versioning everything. Any administrator (or knowledgeable user) can still use a Subversion client to search history and retrieve older versions of data.
Have you tried Tortoise SVN? I can’t imagine source control getting much easier to use.
This sounds more like a use case for a collaborative tool like BaseCamp,
SpiceBird, or SharePoint than “source control.” Those tools have the same aim as source control but are more geared toward Word Document type stuff and the corresponding users. It’s one more item for the IT folks to maintain on the server but it also removes the possibility of someone’s assistant wiping out your code.
If they only need to edit Office files one user at a time infrequently, get the files on a network share with appropriate permissions and back them up nightly. Active Directory will warn them if someone already has it open.
If it’s more complicated than just office consider Sharepoint. I think SVN is too complicated especially since conflicts and comparisons of binary files e.g. old word docs doesn’t work really.
I would try Mercurial with TortoiseHG for Explorer integration.
It’s easy enough to use that I could without problems:
- teach it to a not-that-computer-savvy-collegue for writing text together.
- guide a friend by phone through installing Mercurial (TortoiseHG), creating a repository and setting it up for working together using seperate push (his) and pull (mine) repositories – after installing it only once on a Windows machine (I only run GNU/Linux).
And since it is fully distributed, they can’t break your repository when they break theirs – you can simply decide not to pull their changes or to pull only the good changes (for example avoiding these huge binary files beginners tend to put under version control).
I since then switched to also managing all my static websites via Mercurial (and a push-upload hook which automatically uploads the website to my FTP-server, so I don’t have to worry about that anymore).
I think the best solution would be to get everyone to use the version control system directly. If you are on a Windows platform, TortoiseSVN would be my recommendation.
If using TortoiseSVN directly is too difficult, I have had good experiences with setting up a Samba file share where all project documents are stored and automatically synchronizing this with Subversion. You lose the benefits of people writing comments on their commits, but in many cases automatic version history is better than no version history. This way the people involved don’t even have to be aware of the version tracking, as long as they save their documents in the right place. How often you need to synchronize depends on how often documents are changed, but in my case a synchronization every 24 hours was adequate.
Note: To implement this I had to write a custom script that checked out the latest version from the repository, compared it with the local copy and issued
cvs) commands to add, remove and update any changed files. I’m not sure if there exists a general (open source) solution to do this, but I don’t think it should be too hard to implement yourself anyway (I wrote a simple script to do it in a few hours).
I am currently exploring the extent to which SharePoint can provide non-techie friendly yet reliable version control in a similar context. The preliminary result is “meh”. Even in the case we come to a conclusion, it is already becoming clear that revision control requires quite an important shift in users’ attitudes to document management.
Now if this was for teams using Apple Macs, which I presume it isn’t, I’d strongly recommend Versions, which is an extremely intuitive SVN client. This is the first and only software where I’ve seen revision control and its paradigm shifts being adopted easily by non-programmers.
Have you tried Adobe’s version cue? This is not open source / free but it may be easier to use for the end-user.
If Subversion with TortiseSVN is too complex – and it may be, since version control is a whole paradigm different from Open, Modify, Save – then you might start them off with a much simpler hand version control:
It’s simple, easy to understand, and you can write a script that every night or week archives all the older versions so they really only see the latest version or two.
If someone wants to see differences, teach them diff.
“Project files” is potentially vague – if the files in question aren’t primarily ASCII files and are Word documents or what have you, I’m not sure that traditional source control tools will really work.
SVN et. al. will happily support binary files, but you if that’s all you’re using it for then you don’t really get most of the useful features and generally end up confusing the non-technical users. SVN (and git, etc.) are tools designed for programmers – if you’re just looking for a good way to manage document revisions and keep a history, I’m guessing there are better tools for your particular platform (though I don’t know enough to recommend a particular one).
That said, if they are mostly ASCII files, I suspect TortoiseSVN is your best bet.
I made a howto for the subversion+webdav answer: