85

As writers, do you use any version controlling software to track and monitor what you write? For example, if you accidentally deleted or overwritten a paragraph that you'd like to have it back?

Usually what I do is to save multiple copies with incremental numbers, but I find that this isn't a good method because I end up with a folder full of word documents of the same file + changes. It isn't really easy to organise because of it.

(Storyname 1, Storyname 2, Storyname 3, ...)

This isn't necessary a question about programs, but version controlling software used for writing/writers, methods, tricks, ...

10
  • 1
    Related question in Web Applications: Looking for a general-use cloud-hosted document management webapp Nov 20, 2010 at 19:46
  • 1
    Not really related, because I'm looking for a solution/workflow that writers use when writing.
    – JFW
    Nov 21, 2010 at 4:39
  • 11
    It helps a lot if you write plain text, rather than a word processor format. I figure if I've got the text down, I can do whatever else I like later. Nov 23, 2010 at 4:01
  • 5
    Bear in mind that, due to how writers.se was formed, it will be heavily biased towards programmers and other software people who want to write at first. Dec 12, 2010 at 17:06
  • 3
    Google Docs, for one, does automatic revision history. Jul 7, 2011 at 18:50

21 Answers 21

60

I am a programmer in real life, so using a version control software was a no-brainer for me. I write stuff in plain text, with each chapters in a separate text file.

I use Subversion on them, with TortoiseSVN on Windows, and also use a Dropbox for backing up my repository.

This way I have my changes versioned, I can comment the changes I commit, and if my hard drive decides to die, I can be back really quick.

11
  • 1
    Funny, I use the same thing. Though hosting wise I use VisualSVN. It's easy to setup on windows, you can view it with a browser and it's ready for use on the network. Combine that with TortoiseSVN you can write anywhere in the house with little to no setup.
    – Fox Cutter
    Nov 20, 2010 at 20:03
  • 2
    isn't Visual SVN a plugin for Visual Studio?
    – Axarydax
    Nov 20, 2010 at 23:05
  • 4
    I think he means VisualSVN Server, which is a pre-configured Apache Web Server with the SVN Module and a nice MMC-GUI to manage it - it's basically a 2-click-Installation and works with any SVN Client, not just the VisualSVN VS Plugin. Nov 21, 2010 at 19:40
  • 1
    Yep, this is exactly like I do. I use unfuddle for my hosting, so that all of my WIPs are saved offsite. Nov 22, 2010 at 15:41
  • 1
    This also works if the software you use for writing saves its text and data in anything close to plain text. For example, yWriter uses XML for metadata and plain text RTF for text, which means standard version control software works really well with it. Aug 1, 2012 at 12:50
34

You should really just grab and try any version control software presented on the market. This soft is not really more than controlling text files, and text files is what we do.

I use Mercurial and I am very happy about it. It's easy to use for writing alone, as Mercurial tracks all your changes through local repository, and easy to use when collaborating, because it is a distributed version control system. There is also good Mercurial user interface for Windows presented.

But I warn you that file merging is not available, or will be hardly possible, when you're using some kind of text processors (Word i.e). This is problem of all version control systems.

4
  • I do have to point out that merging is not really the fault of the "word processor" as such, just of the existing word processors which do not support (external) version control in any way, shape or form (hmm, I wonder if Word works with TFS... not that I'd use or recommend TFS for that) Dec 20, 2010 at 20:16
  • The only way I've found to get meaningful diff and merge is to write the text source myself, whether that's some XML flavor, HTML, LaTeX, or whatever. Sure, modern tools (and even Word :-) ) have a notion of exporting as XML, but each export will be its own thing with fresh line wrap and stuff, so if you rewrote one sentence the whole paragraph will probably show as a "something changed here" blob, which isn't very helpful. I write all my source in a text editor that won't try to "prettify" or format/export for me, and I can merge and review diffs easily. Jan 30, 2012 at 18:17
  • +1 for Mercurial, also new Word .docx files are XML, so merging might be possible (I don't know, I use LaTeX).
    – dtldarek
    Jan 20, 2013 at 9:13
  • I also use mercurial, it is amazingly awesome software. I push my repo to a copy on google drive. I also use libreoffice and save in the .fodt format which is a flat XML file, which allows mercurial to properly do diff magic on it. Before that I was using HTML. As for Docx unless something was changed recently, they are still compressed files and not happily diffable.
    – Evil Spork
    Feb 6, 2013 at 11:34
28

I use git. There are a number of popular GUIs for it, though I tend to prefer the command line.

My backup service of preference is Rsync.net because they are reliable, fairly priced, support (and encourage) you to encrypt your stuff and not give them the keys, and really care about their users' privacy.

1
  • 3
    Git works excellently with Latex. In particular, the git diff --word-diff command lets you see changes word-for-word. I recently used Git+Latex for a group presentation, and it worked very well.
    – naught101
    Jul 12, 2012 at 1:09
20

I use Google Docs revision history.

revision history

True version control systems like SVN and GIT are too complex, requiring knowledge of the command line, and are really designed for collaborative teams, working on dozens of different files, all at the same time. They're overkill for writers.

I use Microsoft Word for writing, and every time I save Google Cloud Connect uploads my revision to Google Docs. I get backup and revision history for free.

If you don't use Microsoft Word try SyncDocs. SyncDocs works like Dropbox, creating a folder that is synced automatically to Google Docs. It also saves revision history.

2
  • They are hardly "too complex" get something like TortoiseHG/SVN/Git to give you a nice GUI. For mercurial, create repo, commit every time you save. not really difficult at the basics, and for anything more complex, just a quick google search can give you the command you need to say revert to a previous revision.
    – Evil Spork
    Feb 6, 2013 at 11:36
  • Although I agree with @EvilSpork that Git works well when you're using it simply, when things go wrong (like having conflicting files) or when you try to collaborate with someone else (and you want to merge their pull request), you get thrown into command-line hell rather quickly.
    – Seanny123
    Oct 16, 2013 at 4:31
7

Flashbake is a command line interface for a git repository that had some potential but I think it never really took off. It works in the background and is designed to record ambient data as well like the weather at your physical location and the music playing on your computer at the time you are writing.

It is the brainchild of Cory Doctorow and was intended not really as source control but more as an archival tool that future historians could dig through since personal diaries and the like are no longer prevalent.

It's an intriguing idea and it would be cool if something like this became the standard for working writers.

6

Fossil because it's light weight and easy to backup by just copying the database file to a new location.

2
  • 1
    Of course, any DVCS can be easily copied around. And I'd generally avoid calling a VCS with builtin issue tracker, wiki, and webserver "light weight". Feb 4, 2011 at 21:43
  • Fossil executable is a single 5mb file that has everything needed. Git is ~650mb and approaching 6,000 files and and 725 folders. (Numbers for Windows). A fossil repository is also one single file. Git is thousands, albeit in a single easy to copy folder. Fossil's web UI features are entirely optional, but as easy to use as GitHub if you want them. This qualifies as light weight on all dimensions I can think of relative to the other choices in the field. Nov 27, 2020 at 18:00
5

I use Celtx as my main writing tool and have subscribes to their Celtx Studio which gives version control.

It's not exactly great because you have to be connected to the internet all the time (there is no "Work locally and sync when you have internet again") and it's slow if you add tons of graphics/media to the file (because everytime you save the entire file gets uploaded), but it's there.

For some other stuff I'm using git and a private GitHub repository because I work as a software developer and just use whatever tools I know and somehow make them fit.

3
  • I am new to Celtx and one of the first things I did was try to put a Celtx project file under SVN version control. It was being treated like a binary file which was not what I had hoped for. Do you know if its possible to have granular version control without having to pay a cloud subscription fee?
    – JW.
    Jul 9, 2012 at 18:58
  • @JW Not really. At one point I actually started writing my own Version Control system for Celtx, but in the meantime I switched to Scrivener and haven't followed it through. Jul 9, 2012 at 21:20
  • I'm just looking at the Scrivener web site now. They seem to have a nice ethos. Thanks.
    – JW.
    Jul 10, 2012 at 7:45
4

Try Scrivener for this. You're able to make "snapshots" of a piece of work before you make any drastic changes. As well, Scrivener makes backups for you and auto saves while you are writing. Not having to use multiple programs for version control is nice.

3
  • Can you add a link here, so people can get to this software quickly.
    – tylerharms
    Dec 19, 2012 at 20:47
  • 1
    @tylerharms Scrivener is available at literatureandlatte.com Feb 8, 2013 at 21:29
  • I have Scrivener set to keep all backups, which is not the default.
    – Eric J.
    Feb 9, 2016 at 22:10
4

I'm a writer, not a coder, and I started with this same exact question. I started using Git and it works perfectly, though it was definitely took some time to learn. It's cool because Git is popular and there's GitHub and lots of people are into it.

That said, I understand that Mercurial is just as good or better, and much easier to use with "saner" more intuitive commands.

I'm still using Git since that's what I started with, but I spent too much time learning it and it's not better than Mercurial. If I had it to do over again, I would use Mercurial with Atlassian's SourceTree to graphically view and check in changes to drafts as I made them.

It's cool to do some writing, then have SourceTree show you all the additions and edits you made. Then checking in the changes gives you a sense of accomplishment because you can see the progress you made that day. :-)

2
  • 1
    You know that Atlassian's Bitbucket works with git also, don't you? That's what I use Jun 29, 2013 at 20:07
  • Yes! That's where I have my origin repositories. Jun 30, 2013 at 0:24
4

I use Apache Subversion (merely for Android & web development, not exactly content writing) - either self-hosted or on client's Beanstalk or private GitHub accounts.

Just wanted to recommend my favorite clients; both of them are commercial, but affordable and definitely worth the money: Syntevo SmartSVN & SmartGit.

SmartGit supports SVN partially - but only a basic set of commands. The downside might be that one can only compare plain-text files 1:1; on any other files one can just see them something has changed.

With one file per chapter and some script which merges the plain-text chapters into one single file - with chapter-headings and page-numbers, maybe.

I wouldn't recommend TortoiseSVN - but that's probably just a personal thing - any VCS-client which got a full implementation of the command-set should do the job.

3

I use Subversion and Git as sort of a front end to Subversion.

Using version control has saved my ass several times. I definitely recommend it.

One advantage is that it becomes easy to work on a piece of writing on several different computers.

I do all my writing in text files rather than Word or Pages or Scrivener or anything like that. Version control and plain text go hand-in-hand. However, you can use non-text formats with version control if you prefer.

3

I use Mercurial (see Daniel's answer for a link). I do my (little, atm) writing in pure text files (with my trusty Emacs ;-D), but in a self-designed (and ill-designed at that, for the moment) "novel" format. That way I have pure text with almost no (currently at least) formatting (which is recommended, according to this very site ;-)) but can generate TeX (or other formats, later) when needed.

3

If I'm writing something in a plaintext format, like LaTeX or HTML, I'll generally use version control. For example, when I wrote my undergraduate thesis (in LaTeX) I used Mercurial.

For stuff written in a word processor, I generally don't. I do keep backups (using Apple's Time Machine software) so I can jump back in time to any day. And if I start another draft or a major revision, I'll manually make a copy. For minor revisions, I'll use my word processing software's change-tracking functionality.

3

I've used CVS, SVN, mercurial and git. All work just fine (well, maybe not CVS), but Git has one feature that's particularly handy -- the concept of a staging area.

If you're working on something longer, say a novel, the staging area is really nice. Say you make some edits to chapter 1, some others to chapter 7. With other version controls if you commit your changes it's all one commit. That might be fine for some people, but I really like the ability to commit separately. That way if I want to keep my changes to chapter 1, but roll back the changes to chapter 7, it's easy to do that.

Here's a quick overview: http://whygitisbetterthanx.com/#the-staging-area

1
2

Usually what I do is to save multiple copies with incremental numbers, but I find that this isn't a good method because I end up with a folder full of word documents of the same file + changes. It isn't really easy to organise because of it.

In a version control system you can perform such things as diffs to basically get a view showing changes from one version to another. You can also create branches, merge branches, and so on. Depending on where you host and what you use, you could also have comments at certain lines (all the way to the extent of discussions). This is usually outside the realm of the source version control, and usually in the webview.

The advantages go beyond single user use. You could for example have a proof read copy and do a diff to check what the person changed. Similarly you could coordinate work with other people responsible for certain aspects of how your writing is suppose to look, proof reading, editing, and so forth, and all this with out going though a iterative time consuming "pass me the last copy" process.

I personally recommend something like git for the simple reason that unlike subversion you can work completely locally anywhere, anytime ie. if it's not too clear, with out Internet, or any server.

It goes with out saying, people tend to find it hard to explain (and the ones I've had to were from a technical background no less). This is particularly true when it comes to the command line tools, but GUIs fair no better. One very key problem is junk getting uploaded, I suggest if you're going to use this as a collaborative system you make sure to set some very clear rules, as seeing unnecessary junk files in the repositories is infuriating.

2

I've got a couple of things I've done or tried over the years:

1.) When starting my edits or writing for the day, I make a copy of the word doc using the date in the filename. That way, I have a new copy each day and can fairly easily go back to a previous version on a day-by-day basis. This sounds like what you're trying to get away from, but it works for me.

2.) When releasing in eBook format, I version each "release" with a version similar to a software product (I'm a software engineer by day). A "release" consists of the word doc, a pdf (for my web site, Scribd, etc.), an ePub (for B&N), the cover png (for CreateSpace), and the CreateSpace version. All of these files go into a separate folder. Backups are done to Carbonite.

I track the release in a spreadsheet, mostly so I know which retailers have which version. It can get very confusing, very fast if you don't keep some sort of record.

I've entertained the idea of using SVN (source control), but haven't yet had to go to that extreme. I wouldn't recommend SVN for the novice, though. It's easy to get tangled up with it; hours will be wasted trying to make it right.

2

Microsoft Word (and OpenOffice.org, at least) supports versioning - I don't recall exactly how to go about using it, but in older versions, at least, it seems you just select the 'Versions' option from the file menu.

You can compare different versions with essentially a pretty diff, leave comments, etc.

3
  • 2
    MS Word does support versioning, but it has kinda clunky UI and all versions are saved right into the single .doc file - so your short story can have the size of megabytes. Jul 11, 2012 at 8:29
  • And crash, losing all your work. Not a happy event. Jul 1, 2015 at 5:16
  • Well, that's why you save often! That being said, I now write everything in vim and track it with git. But that's not necessarily the thing for everyone. :) Jul 9, 2015 at 19:34
2

I script Python by day and write by night, and personally I find version control more distracting than helpful. I get so diverted tinkering with it, I end up forgetting about the book itself.

I find the easiest scheme to just increment chapters. A hypothetical chapter 1 becomes chapter 1.2 with a new edited version for example. They alphabetically self-organize in the folder stack that way, and make it easy and clear to scroll to whatever one. When that view, hence view of what I'm doing, gets confusing to my eye I know the story is too; and find that a handy pneumonic.

Well done VC setups are invariably more complex then that, and ironically by their nature will hide growing mess of an author's sprawling story by conveniently compartmentalizing and organizing everything for him. Dangerous dependence for a new writer, I think.

But of course, to each their own! Good luck!

2

As I'm a programmer I do, as I'm used to it and version control is made for tracking revisions of text, so it is working pretty good with writings.

Pros using version control:

  • backup is easier, as I once created backup for my repositories I simply put everything that I want to keep under version control
  • I can see and go back to older versions of my writing
  • I have a log of my writing activity and can use that for planning
  • I can test different paths to go through the story and which one pans out best

I personally use bazaar, but which modern version-control you use is more a matter of taste.

1
2

If you are using a Mac, one thing that many people miss is that there is built-in system versioning that is available in any app that supports it.

For example, if you are writing in Pages, you can go File ▶ Revert ▶ Browse all Versions to essentially go back in time to previous versions of your document. It works somewhat like how Time Machine works for all files. And it is available on many different built-in and 3rd party apps.

Of course you can also use Time Machine to browse back in time within a folder that contains your chapters or other writing documents.

But it is definitely work exploring learning to write in Markdown (which takes all of an hour) and then that basically makes you a programmer, and you can use programming tools. I write in BBEdit because it gives me the feeling of a long empty page and the writing I make there can be easily machine-converted into any kind of format for publishing. BBEdit has Git and Subversion support.

2

I use The Novel Factory (as you might expect) which allows me to have tabs for up to three drafts, plus 'blocking'. I also occasionally save a new version of my entire novel file in case I want to go back to something earlier.

I think that if you have too many copies, then, after a while, the overhead of searching for something gets too high. And probably, when you finally go back and find it, you'll discover it wasn't actually the work of genius you remember!

Perhaps that's just me.

Not the answer you're looking for? Browse other questions tagged or ask your own question.