The terms DVCS and Git seem to be thrown around a lot. Are there any applications for this technology if I'm not a programmer, but just a regular "superuser"?
Author Cory Doctorow got some geek friends to write FlashBake to commit his work every 15 minutes along with some other information.
I was prompted to do this after discussions with several digital archivists who complained that, prior to the computerized era, writers produced a series complete drafts on the way to publications, complete with erasures, annotations, and so on.
His blog post about FlashBake talks much more about the motivation, usefulness and details.
Bazaar is an excellent DVCS that is very user friendly for novices. It'd be very helpful if you were doing something that involved tracking changes to text (writing a book?)
Our company is putting a version control system for our Power Point presentations. We work in professional education, and the sheer number of Power Point presentations and other marketing material that is floating around between two or three people is staggering.
We're going to use a VCS to eliminate the clutter, and if someone inside the company wants a copy? Just browse to the VCS and grab the latest revision.
We're probably going to go with VisualSVN, since it's one of the easier ways for us to setup a 'set it and forget it' VCS for our LAN.
Bazaar is definitely the most user friendly of the distributed RCSs I've tried.
If you're on Windows, File Hamster is a commercial app aimed to be RCS (with distributed for enterprise IIUC) for non-programmers:
I used to use it to track changes to illustrations (UI is great, developers are very friendly and nice), but I switched over to Bazaar.
There is also versomatic for non-programmers, but it isn't distributed AFAIK:
Dropbox is in many cases a better solution than a VCS for a "superuser" who wants some of the benefits of a VCS but who isn't a programmer looking for source code control.
Dropbox ( http://www.dropbox.com ) is not, strictly speaking, a version control system. It does use git behind the scenes, however, and offers most of the version control features a non-programmer user would want for file storage:
- Abstracts away the hard-to-understand parts of versioning system; for the most part users don't need to know or care what happens behind the scenes.
- Changes made to a file on one computer are immediately pushed out to other computers attached to your dropbox account.
- On free dropbox accounts all changes within last 30 days are preserved and can be rolled back. On $10/month account previous versions are preserved indefinitely, no cutoff.
The main downside to Dropbox is that the free service offers "only" 2GB. That's still quite a lot, depending on your intended use.
As I said, Dropbox is not a true version control system, certainly not something that would suffice for programmers who want source code version control. It may be a better option for non-programmer power users who want to have some of the advantages of version control, though.
Mercurial works fine for non-programming tasks. Keep back versions of pretty much any documents you work on. It's not as efficient dealing with binary files as with text, but for small scale environments it's probably still fine. Get TortoiseHg for simple installation and ease of use. What kind of files are you looking to manage, and is it just for you or for a group of people? The answers to those questions are key to deciding on the right system to use.
I actually tend to use RCS (not distributed, I know) for my school papers. Mostly because I'm lazy and it's so easy to put a file under RCS in Emacs, and I'm afraid to write without version control -- what if I decide I didn't want to delete that paragraph after all?
If I was going to write something big enough that I would want my text in multiple files, I would definitely use a DVCS for that, probably Bazaar.
As for reasons to use a DVCS rather than a plain-old VCS,
It's easier to collaborate with others
It's also easier to edit your stuff in multiple places -- no need for a central server or carefully copying around the latest version of some fragile "repository" directory. (This is really a special case of the previous one -- self-collaboration!)
It's generally easier to create a repository in the first place
There are multiple efforts for using e.g. GitHub for collaborative work in publishing, including academic collaboration but also various other coauthoring scenarios.
Traditional publishing toolchains have been dominated by proprietary file formats and editing tools, but there was always a strong undercurrent of purely text-based publishing tools (Troff, LaTeX, etc) which are very nicely suited for source code version control systems, and actually bring some nice benefits (the ability to comment on sections without having the comments intrude on the final published result, programmatically producing some parts of the content, etc).
Here is one example: https://github.com/PeerJ/paper-now but there are many others for academic publishing. I believe I have seen something for less formal publishing (journalism collaboration? volunteer work?) but I can't find a link right now.
GitHub itself of course is centralized, but once you understand the concept, there is nothing really stopping you from going fully DVCS.