Back to top

Hunting for a VCS

Lemme get technical for a second and ask for some suggestions. First though… story time!

I use version control for all of my creative projects (3D, animation, graphics, writing). I started years ago with Subversion and eventually migrated to Mercurial. There were a number of reasons for this switch, but the biggest was the ability to do ad-hoc local version control without setting up a server. Also, Mercurial handles binary diffing slightly better than Git, making it a better choice for art assets.

Now, I’ve been doing a lot more writing lately and, more importantly, a good chunk of my writing these days has been on my Android tablet. And therein lies my biggest problem. There’s no Mercurial client for Android and there’s no plans for a port (and I’ve tried various workarounds… even came close by running Python on the tablet, but there are limitations in Android’s filesystem that prevent it from running an unmodified version of Mercurial and I don’t quite have the necessary chops for modifying Mercurial’s source). My current solution has been to use rsync to synchronize files between my home workstation and my tablet, and only commit on the home box. It works… but it’s pretty kludgey. Add to this the fact that I’ve been slowly migrating from writing in LibreOffice ODTs to plaintext formats like Markdown and Fountain, so for my writing at least, the saved disk space of binary diffing becomes less of a determining factor.

All of this is a long way of saying… I’m in the market for a new version control system for my writing projects. The main two requirements are as follows:

  • Should not require a server (allow local ad-hoc versioning)
  • Has an Android client that allows for commits and pushes

Right now, it looks like my options are Git and Fossil. Anyone got any other recommendations or suggestions?

[Update 2017-05-11]: So as it turns out, I found a solution that I like. I talk about it a bit on Episode 39 of the Open Source Creative Podcast. Basically, I get to keep using Mercurial and I still write on my Android device. Even better, I get to write with all the Linux command line tools I know and love (like vim). How? By running Termux. Termux is essentially a very powerful shell for Android that allows you to install and run all kinds of common Linux applications. It’s been an integral part of solving this issue for me.