On Mar 1, 2008, at 6:05 AM, Christoph Held wrote:
How linear is a series of versions? For actual writing (as opposed to coding perhaps) it would be absolute bliss to be able to decide that you would want to return to the wording of the discussion three versions previously *without* discarding the work you have done meanwhile.
Is that possible and how do the usual suspects differ with respect to this?
Well, once everything is in a repository, then (in principle) anything can be reverted. However, trawling back through the history for small changes that were committed together with many others can be difficult. And, at least with Subversion, you can only automatically revert an entire changeset's changes for a given file (reverting only part of a changeset for a given file requires a bit of manual effort). If I am wrong on this, please correct me.
Two things can help with this, especially on writing projects. First, you can commit frequently, and organize each commit so that it is making a single, well-defined change (e.g., "revise abstract to meet word limit" or "refer to this SNP by a different name"). This will make it easier to browse through the change log and revert specific changes. Second, if I'm struggling with the wording for a particular paragraph, say, I'll usually leave the original version as a comment in the file, adjacent to the newly proposed version. This makes it easy to see what the changes were, and to combine elements of both versions at some point in the future. Of course, you could take this reasoning to the extreme, and just preserve all changes in one, large text file. Clearly, that would not be helpful; moreover, this is what your VCS should be doing for you. Thus, you probably will want to use this technique sparingly.
-- Phil