Take the 2-minute tour ×
Writers Stack Exchange is a question and answer site for authors, editors, reviewers, professional writers, and aspiring writers. It's 100% free, no registration required.

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, ...

share|improve this question
1  
Related question in Web Applications: Looking for a general-use cloud-hosted document management webapp –  Neil Fein Nov 20 '10 at 19:46
1  
Not really related, because I'm looking for a solution/workflow that writers use when writing. –  JFW Nov 21 '10 at 4:39
7  
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. –  David Thornley Nov 23 '10 at 4:01
3  
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. –  David Thornley Dec 12 '10 at 17:06
    
Google Docs, for one, does automatic revision history. –  Wayne Werner Jul 7 '11 at 18:50

18 Answers 18

up vote 44 down vote accepted

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.

share|improve this answer
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 '10 at 20:03
2  
isn't Visual SVN a plugin for Visual Studio? –  Axarydax Nov 20 '10 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. –  Michael Stum Nov 21 '10 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. –  JSBձոգչ Nov 22 '10 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. –  Martin Sojka Aug 1 '12 at 12:50

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!

share|improve this answer

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. :-)

share|improve this answer
1  
You know that Atlassian's Bitbucket works with git also, don't you? That's what I use –  Psicofrenia Jun 29 '13 at 20:07
    
Yes! That's where I have my origin repositories. –  Peter Salazar Jun 30 '13 at 0:24

I use Apache SubVersion (merely for for script development, not exactly content) - either self-hosted or on client's Beanstalk or gitHub accounts.

Just wanted to recommend my favorite clients; Both of them are commercial - but affordable and definitely worth the money:

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.

share|improve this answer

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.

share|improve this answer
    
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 '13 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 '13 at 4:31

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.

share|improve this answer
    
Can you add a link here, so people can get to this software quickly. –  tylerharms Dec 19 '12 at 20:47
1  
@tylerharms Scrivener is available at literatureandlatte.com –  Lauren Ipsum Feb 8 '13 at 21:29

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.

share|improve this answer
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. –  Lukas Stejskal Jul 11 '12 at 8:29

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.

share|improve this answer

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

share|improve this answer
    
Mercurial has Mercurial Queues, which can be used as a staging area, among other things. –  Faheem Mitha Aug 5 '11 at 21:04

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer
    
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 '12 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. –  Michael Stum Jul 9 '12 at 21:20
    
I'm just looking at the Scrivener web site now. They seem to have a nice ethos. Thanks. –  JW. Jul 10 '12 at 7:45

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.

share|improve this answer
    
+1 git + command line FTW! –  Lukas Stejskal Jul 11 '12 at 8:30
    
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 '12 at 1:09

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.

share|improve this answer
1  
+1 for Mercurial; easier to setup and use than Subversion. –  Aaron Digulla Nov 24 '10 at 22:27
    
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) –  Jürgen A. Erhard Dec 20 '10 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. –  Monica Cellio Jan 30 '12 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 '13 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 '13 at 11:34

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

share|improve this answer
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". –  Xiong Chiamiov Feb 4 '11 at 21:43

protected by John Smithers Mar 4 at 8:40

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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