Versioned Writing — an experiment
Status: Very drafty.
Git for prose, Git for everything
Recently, I've become hooked on the idea of applying version-control software (and the concepts it enables) to writing. Git and GitHub have completely transformed, for the better, the way I write and think about software. I have a hunch they can something similar for writing.
Some form of versioning already exists, raggedly, in most prose-writing workflows. It's typically linear. For instance, we all have a folder somewhere that looks like this:
This mess is a headache to manage, yes. But, whether most writers realize it or not, this mess is also a shackle. The mess and our aversion to multiplying it, prevents us from taking as many syntactical, rhetorical, and intellectual risks as we should or could.
Computer programmers have a set of tools that elegantly get around this problem: version control systems. Git, which I use, is currently the most popular, but there are many options. Git lets me "branch" a programming project in two, or three, or more, directions at the same time, never worrying that I'll lose any changes along the way, or become chained to one particular path.
Version control systems afford developers many conveniences -- collboration, rollbacks, merges, tagging, commit-commenting -- but I suspect that this concept of branching will be the most powerful for writers. Branches alleviate hesitation and fear. Branches encourage risks and experimentation.
Other applicable Git concepts
- versioning has a specific application to "living" documents, such as blogs and most other writing on the web -- revisions become less intrusive, more transparent, more accountable.
- See Paul Graham on rewriting: http://paulgraham.com/laundry.html
- commit notes as a concept that doesn't really exist in writing today, but should.
- enables collaborative (copy-)editing, pull-requests, etc.
- Benefit to reader, if the writer wants to post entire revision history; though I can see the argument for rebasing pre-publication
- Other uses for branches: alternate endings?
People already publishing prose on Git
- Chacon, Hinton, Bycoffe, Osmani, and more -- see previous piece.
Software for representing/publishing git-prose repos
- The software should be able to easily port this and other gists.
- Why gists fall short:
- Can't read commit messages
- Can see how much changed, but not what
- Not great formatting for prose; a necessary limitation, given the focus on code.
- Not customizable.
- Not yours!
- Previous attempts: Flashbake, Google Docs (to some extent), Stypi (http://paulgraham.com/stypi.html).
- But these are all missing a crucial ingredient -- branching. Revision history is revelatory (in a literal and figurative sense), but branching is transformative -- it transforms the creative process, frees it to be less linear, more adventuresome.