30

If you are one of those rare people who can write, straight through, without any major refactorings or changes of direction along the way, more power to you. But for many people, and IMO any long-running project, source control is a major benefit. Here are some of the reasons: When you realize the path you're going down is a bad idea, you can roll back to ...


20

There are two concepts in git that can help: branches and tags. Tags. Think of a tag as a name for a specific revision. Any time you want to remember a version, create a tag for it. For example, when you finish a draft, you can tag it like this: git tag first_draft When to use tags. Tags are good for marking any version that you might want to remember ...


18

I use Google Docs 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 ...


14

There are a large number of version control systems out there, but I think that Git might be the best choice for you for a number of reasons. The biggest reason is that everything is in a single folder, you don't have to check things out to work on them or rebuild anything. You can just keep a full live copy on a pendrive and it just works. You also don't ...


12

For internal documentation I've found wikis to be quite useful. A wiki has several useful features for this task: built-in change-tracking doc can be structured as several pages (e.g. one per major section) for easier management; individual pages can then be edited without any need to merge changes into a master document some (most?) wiki platforms detect ...


11

You still need backups. Version control and backups are orthogonal concepts and should be used together, one is not a replacement for another. Yes, version control will persist the change history in the repository, but the repository itself is not protected just as any computer file is not protected. If the drive where the repository is stored dies the ...


9

The first scenario is check pointing to safe guard against those moments (and I've had them) where you come to realize a section of the document is missing. This happened when accidentally, without me noticing, as well as when one of my kids happened to hit the keyboard and I had a section of text selected. The other use though is before I'm going to rework ...


6

Just to play devil's advocate a little bit, I think a case can definitely be made for not using a software version control tool in writing. As a writer who also works in the software development industry, I have some pet theories about this, though I am still experimenting myself. In 1967, a computer programmer called Melvin Conway coined what has become ...


6

There is no advantage. Most people in this forum are from a technical background, so they automatically look for technical solutions. You don't write a book how you write code. When writing code, you dig in, change a line here, add a function there. This can break the whole system, which is why you have version control and testing and continuous ...


6

WinMerge can help you manually merge documents. It can compare two text documents, highlight similar lines and lines that are slightly different and it allows you to quickly choose which version to keep on a line by line basis. If you want to automate this process and also keep history and be able to switch between different versions and choose what to ...


5

I can think of one reason: If you have a co-writer, it gives you the confidence to revert to a previous form if you don't like their writing. Or combine conflicts if both of you are writing the same section. This is the original purpose of version control in programming. As I've said in a comment, very often it's best to rewrite back to a previous draft ...


5

Identifying a commit A universal identifier for each commit is its SHA1 — a 40 digit hexadecimal number, like this one: 3e0b5fb09d70d0457d7e5ae7892504f6e1b45f33 This commit is from the Sphinx documentation builder's repo. The comment says: Merge pull request #4556 from tk0miya/4543_autodoc_test_fails_with_py353 Fix #4543: test for autodoc fails with ...


4

Yes, you still need backups. However, the form that backup can take can vary. Version Control might include it If you are using git, then every time you "push" to an off-site repository, you have created a backup of your project in its entirety - including a catalog of your changes. This may be sufficient for your needs. In this case, you have two copies ...


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


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


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.


4

You are talking about a Revision Control System, and it's a principle tool among software engineers. Using git (not github, but git on your own files) is a great idea. The thorn is that you don’t get the same benefit when using “word processor” files. A solution is to use a system of writing using plain text files, with formatting as a separate process. ...


4

You might consider using R-Markdown. I can imagine a process where you: Convert all of your current documents to separate markdowns in plain markdown text Identify the components you wish to keep the same between documents Create separate objects containing each piece of text you wish to synchronize Insert those objects into each of the separate ...


4

Lyx have some subdocuments abilities that may help. But you'll have to port your work in this new environment and it may not suits your other needs. Nevertheless, it is one of my favorite writing tools.


3

The principal reason would be to easily collaborate on a document with multiple authors and avoid overwriting each others copy. It would also help you open up your book to public contributions, corrections and suggestions if you used a social platform such as github.


3

As a coder and blogger ( http://create-build-execute.com ) I am using Git for version control. Actually my whole blog is run on it and I can recommend it a lot. As you are on Mac and do handle text files mostly, I'd recommend using the great github mac UI ( http://mac.github.com ) it makes it really easy to use and you don't even need any github account - ...


3

Google docs has insane levels of versioning, and can compare changes since any specified version, showing additions and deletions. It's probably your best choice. Scrivener, probably the most widely used writing-specific software, can create a backup every X saves. I set mine on 5, since I save frequently. But that might not be what you're looking for. At ...


3

I'm not sure I can provide a full solution to this, as the workflow seems to have so many variables. If what you are after is just getting the comment without copying or pasting, you can use something similar to the following Unix command: $ git log --format=%B -n 1 <sha-1> > filename.txt This gives you the comment for the specified SHA-1 commit ...


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


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


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


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


2

I do not know whether the sophisticated functionality of git would be all that useful, unless perhaps if you are collaborating with another writer. However git does offer a couple of things that are potentially interesting or useful to the writer. The first, and somewhat trivially, is that it neatly does the book-keeping versions of your text for you, ...


2

I write when I can. (Full-time job, family, house, church, etc. takes up most of my time.) Currently working on a book series with a complicated plot, so I often don't write linearly. (Heck, the plot's not even linear!) Once or twice per week I save under a new version number. It's been invaluable, because I've often cut a section (to paste elsewhere), ...


2

In the past, I've used a wiki for this type of work. However, a tool doesn't organize itself. The best wiki sites are heavily edited from every level from copy to development.


Only top voted, non community-wiki answers of a minimum length are eligible