I'm looking for a SCM (or revision control or version control, whatever you call it) system to use to keep track of documents (mostly LaTeX and plain text at the moment, maybe some HTML). Currently I have a directory that contains the documents for several ongoing projects. Some of these documents may be updated once every few months, while others are updated daily. I periodically manually save a backup copy of the then-current state and give it a "version number" in the file name. I do work on two desktops and a netbook, and I use Unison to synchronize all of my documents (both desktops run an ssh server), so that I can move with little trouble to another machine and keep working as if I had not moved. I'm hoping that using SCM software will help me keep track of the revisions in a more reliable way, but I will also need to continue to be able to easily synchronize things between my various machines. I have no experience at all with SCM software, only a vague idea of what it does, but I assume many people on this list have lots of experience using these systems (for source code), so I'm hoping to get your input.
I talked to my brother (who is a programmer) about it, and he highly recommended Mercurial. I went through a tutorial and it seemed reasonably easy to use and understand. I know Subversion is pretty established and widely used, so I've been considering that too. I don't have enough knowledge to have a strong opinion on how these compare, although the ability to to commit revisions while off-line sounds useful for working on my netbook. If I use Mercurial, it looks to me like the best bet is either remotely mounting directories on other machines with sshfs to push/pull between repositories or have a central repository somewhere on a webdav share that all my machines would interact with (or maybe BitBucket). Perhaps there is a better way. I'm also not sure whether it's better to have one big repository with all my documents or to have a separate one for each document. Separate repositories for different projects would seem to make sense, but then I'm worried that I'll then be saddled with trying to make sure all the various repositories on the various machines have the most recent version. Maybe I could still use Unison, as long as I never try to push/pull between the various copies of the repository. As a secondary goal, I'd really like to use a SCM system for collaboration on papers. For that purpose I'd like to find one that's reasonably easy to use on Windows for someone who is maybe not that comfortable with the command line, editing text config files, etc. (which is fine for me but probably not everyone). I have no knowledge of these systems nor have I used Windows much in years, so I'm clueless here. What little I've heard makes it sound like TortoiseSVN and TortoiseHG make things not too difficult on Windows. I have no idea which version control system will generally be more intuitive to people; I suppose it's hard to say. And then there's the question of the best way to exchange changes, either by a repo on a server (behind a password or similar for privacy) or some other way. Being a total newbie here, your advice is greatly appreciated.