Hi Prion, On Feb 18, 2008, at 8:11 AM, Christoph Held wrote:
Hello all,
perhaps this is a bit off-topic so please bear with me. Some regulars on this forum were instrumental in developing these thougths though which is what encouraed me to post here.
I am a researcher doing some of my writing in Multimarkdown text files and put my work on a portable harddrive which I carry home after work, synchronize to my home computer and carry on working there. Ditto for the reverse.
After reading a series of inspiring articles about how to use subversion repositories for academic writers over on Practex journal I am beginning to think that I could make better use of my resources. Here is what I plan to do:
I actually suspect some of these articles were written by TextMate users ;). I'm assuming you were looking at articles here: http:// www.tug.org/pracjourn/2007-3/index.html
Go to work, read, write, take notes etc. Some of this takes place in textfiles, some will reside XML files (Tinderbox), and some also in binary files at the end of the day. I have access to a server that I would like to push all my changes and new data to and then go home. From home, I would like to pull all changes to my home computer and carry on.
- Will the version control systems compare whole lines or do some
kind of document comparison trying to find identical blocks regardless of (soft) line breaks?
Version control systems tend to compare lines. In theory, you can provide your own diff command, for instance wdiff. It takes a bit of tinkering, but I think is possible in theory.
For LaTeX documents at least, there is the wonderful latexdiff package, which will effectively do word-by-word comparison and produce a pdf file for you that shows the differences that have occurred in the document in a wonderful way, and I think it can be instructed to skip spaces. But by default all these version control systems look at lines. Is that so much of a problem however?
http://www.ctan.org/tex-archive/support/latexdiff/
- what I don't know is how well this system will work for binary
files, e.g. Aperture libraries, Word files from colleagues etc. Ideally, I'd like to just send the changed bits of files, not all files that have changed to save bandwith and time. If something went wrong I would want to go back in time. I am working on a localized system (meaning non-US) in case that is presenting a problem.
No, I don't see how it could do that. It would need to know the details of the binary encoding used by all programs that have existed and will exist in the future. That's the problem with binary files (other than the fact that you need a specific program to be able to read them of course). You can still go back in time of course, that's the "version" part of version control. So even in that case it helps. I don't know if Word has some way of comparing documents, but you could in theory, and in practice, have it compare a word document file now with its version 2-3 revisions in the past.
Simply put, version control keeps the history of your project, with all states of the files along the way (that you chose to keep and commit, that is).
I am not afraid of the command line but I have no experience with version control whatsoever because I was left with the impression that it was of little use outside source code development. Although I do some reading about subversion, git, mercurial, bazaar etc I need some guidance if I am barking up the right tree in the first place.
I am working on a book currently, in LaTeX, and keep it on subversion. It helps me keep track of what I have changed when and why, and I wouldn't give that up for nothing in the world. Once you set it up, you don't really have to leave TextMate's world.
I would greatly appreaciate your thoughts Prion
Hope this helps,
Haris Skiadas Department of Mathematics and Computer Science Hanover College