Source Control for your Fiction Writing

Using Source ControlI’m a software engineer. I spend my days working with code projects. There are a few tools that sit in every programmer’s toolbox. Once of these is source control. Whenever you finish a significant piece of work, you commit your changes to the repository. Others working on the same project have their own working copy of the project (a check-out) and they can update to get your most recent changes. If you want to see what the code looked like at 2:oo PM last Tuesday, you simply go back through the repository revisions. All your historical changes are kept.

It seems logical that when I come to do my writing, some of my “day job” mentality comes with me. I’ve found that source control is my friend when working on fiction.

Firstly I use a program called yWriter. This was developed by Australian author and programmer Simon Haynes. He too found it useful to apply a programming mindset to a writing project.

It occurred to me that since a story in yWriter is essentially a project file (xml) with individual code files (in rtf format), it makes logical sense to go the next step and use source control. My source control tool of choice is Subversion. The main benefit that I see in using this is that I can have check-outs of my project on multiple computers, and I can submit all my changes to a centralised repository. Sure there are plenty of other ways to keep your writing at your fingertips. Google Documents would be another good idea, but I often have slow or limited Internet connectivity. I can still manage to do updates and commits at times when I’d have no hope of opening a google doc.</p

Subversion also allows you to create branches of your project, where you can make major changes just to explore an idea. When working in code, you can merge changes from one branch to another, although in the case of a yWriter fiction project this would not be trivial. RTF is technically a text format, but not a very human-readable one. Trying to merge changes in an RTF file is not something I’d recommend.

To use subversion you need a repository and a client tool. I use Tortiose because it integrates fully into Windows Explorer. You can get your own free subversion repository at Assembla.

Now, this way of working won’t be for everyone, and in truth it may only appeal to die-hard nerds like me, but maybe you might want to consider source-control for your writing project.

Also, if you’re interested in nerdy tools for writers, check out what I had to say recently about organising your writing projects.


About Adam David Collings

Adam Collings is a writer of speculative fiction who works as a software engineer during the day. He lives in Tasmania, Australia with his wife and two children. Adam is currently working on a science fiction novel.
This entry was posted in Writing and tagged , , , . Bookmark the permalink.

5 Responses to Source Control for your Fiction Writing

  1. Hi Adam,really loved finding your post about computer writing tools on AWF, which led me to your blog. I have just started my first draft – working title Butterfly Wings – and can do with all the help i can get. Will certainly have a look at that program 🙂

    • Hi. Thanks for stopping by. I’m glad you liked my post. All the best with your first draft.

      • Adam, wondering if you could answer a question for me please. Not being over savvy in regards to computer stuff, I get confused on how to distinguish between actual spam on my wordpress site and real comments which sometimes seem to slip into the spam folder. Hm…

      • Being on, the Akismet plugin should trap most of it. I very rarely have any spam that doesn’t end up in my junk folder. I guess if it just looks like it is selling something then it is likely to be spam. Spam bots will often try to pick words or phrases out of your post and repeat them back, but it usually comes across pretty dodgy, making them reasonably easy to recognise.

      • Thank you – dodgy is the key i was looking for 🙂

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s