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:
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.
1) 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?
2) 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.
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 would greatly appreaciate your thoughts Prion
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
Hi Haris,
On Feb 18, 2008 3:11 PM, Charilaos Skiadas cskiadas@gmail.com wrote:
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
you are probably right on both counts.
What about any of those tools that claiim to be doing backup/mirroring and versioning of everything (including binary files?) at once such as Brackup: http://search.cpan.org/~bradfitz/Brackup-1.06/lib/Brackup/Manual/Overview.po...
There is not much in terms of docs but it looks interesting. To me it looks as though it may do exactly what I need. Except, only when it will be ready. Sigh.
Or perhaps rsync or unison?
With all these tools I know I am going to loose some metadata but I simply don't know which ones I can afford to loose without ill effects.
Any comments on these? I know I will have to cover the backup process separately if I am using rsync or unison. Is there a reason I should not rely on TimeMachine for this?
Re Latex as a writing environment: Although I am sitting on the fencing watchin the Latex scene with interest, I am more attracted to Multimarkdown even though I am using it in an extremely rudimentary fashion at the moment. The simple reason is that most of my papers are written with one or more co-authors who have never used anything besides Word and are so used to blame the usual incompatibility problems on the imperfections of the tools others use rather than thinking about how this is a self fulfilling prophecy. I can't tell you what I am tired of most, using Word myself or explaining time and again that choosing to ignore the World outside MS Windows is hardly a sign of supremacy. Be that as it may, in my field I cannot count on Latex users around and need something that requires as little paradigm changes as possible.
Multimarkdown is very readable as such and I can exchange test files with Word users and the only thing I need to ask them is to please respect the #'s they may encounter here and there. Well, there is some more markup but orders of magnitude less than in Latex.
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?
I will take a look at it nonetheless, thanks.
Hope this helps,
Haris Skiadas Department of Mathematics and Computer Science Hanover College
Your reply has been very helpful indeed. After all, you were one of the authors who got me started. If I were in Astrophysics I'd start learning Latex already, but molecular biology is a different field. I would either do it for the pleasure of writing the lone reviews for myself or have to impose my set of rules on my co-authors. Neither situation is frequent enough or gives me enough pleasure to make me *want* it enough, I guess.
Prion
On Feb 18 2008, at 22:02, Christoph Held wrote:
What about any of those tools that claiim to be doing backup/ mirroring and versioning of everything (including binary files?) at once such as Brackup: http://search.cpan.org/~bradfitz/Brackup-1.06/lib/Brackup/Manual/Overview.po...
Backup and version control are different things. If you use version control, say subversion, your repository should also be backed up.
Subversion also allows an external diff command. Haris mentioned wdiff, but many GUI diff programs such as FileMerge (which comes along with the Apple Developer Tools) or Changes[1] display word differences along with line differences.
Best, Mark
Thanks for the recommendation, changes.app does look nice. I will definitely check it out once I have upgraded to Leopard. FileMerge on the other hand does not play nice with accented characters, Umlauts etc. If that can be cured I'd be interested to hear about it.
Thanks for all the answers, I was without internet for a couple of days (and actually enjoyed it).
On Wed, Feb 20, 2008 at 1:43 AM, Mark Eli Kalderon eli@markelikalderon.com wrote:
On Feb 18 2008, at 22:02, Christoph Held wrote:
What about any of those tools that claiim to be doing backup/ mirroring and versioning of everything (including binary files?) at once such as Brackup:
http://search.cpan.org/~bradfitz/Brackup-1.06/lib/Brackup/Manual/Overview.po...
Backup and version control are different things. If you use version control, say subversion, your repository should also be backed up.
Subversion also allows an external diff command. Haris mentioned wdiff, but many GUI diff programs such as FileMerge (which comes along with the Apple Developer Tools) or Changes[1] display word differences along with line differences.
Best, Mark
For new threads USE THIS: textmate@lists.macromates.com (threading gets destroyed and the universe will collapse if you don't) http://lists.macromates.com/mailman/listinfo/textmate
On Feb 29 2008, at 14:27, Christoph Held wrote:
Thanks for the recommendation, changes.app does look nice. I will definitely check it out once I have upgraded to Leopard. FileMerge on the other hand does not play nice with accented characters, Umlauts etc.
When you are Leopard equipped, do check out Changes, then---it, unlike FileMerge, supports UTF-8 and a variety of other encodings. See the developer's comments on the post on Changes at the TextMate Blog.[1]
[1] http://blog.macromates.com/2008/changes-filemerge-replacement/#comments
Hello Haris,
On 18-Feb-08, at 9:11 AM, Charilaos Skiadas wrote:
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, [snip]
Do you have latexdiff set up to run as a command from within textmate? If so would you mind sharing how you got this working to compare the current version of your book with an archived version in subversion?
thank you.
Jeff
Hi Jeff, On Feb 19, 2008, at 1:45 PM, Jeff Newman wrote:
Hello Haris,
On 18-Feb-08, at 9:11 AM, Charilaos Skiadas wrote:
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, [snip]
Do you have latexdiff set up to run as a command from within textmate? If so would you mind sharing how you got this working to compare the current version of your book with an archived version in subversion?
Actually the script I have compares the current version with a backed up copy, so it doesn't actually try to resurrect an older subversion version, though in theory it could do that. The script I use follows. I have saved it as an executable .sh file in the same level as my book. It goes through all the tex files in the directory below it, and runs the diff between these and the files in the directory with the backed up version. So it's not a perfect solution, but it does serve my needs. I then run a manual compile on the corresponding book.tex file. Hope this is of some help, at least give you some ideas. Feel free to ask me about it.
pushd .. # mkdir bookdiffs FILES=`ls BookChaos2007/*.tex` for file in $FILES do oldfile=${file/BookChaos2007/BookChaos2007Backup12-19-2007/} resfile=${file/BookChaos2007/bookdiffs/} /Users/haris/Desktop/latexdiff/latexdiff-so "$oldfile" $file > $resfile # /Users/haris/Desktop/latexdiff/latexdiff-so --allow-spaces "$oldfile" $file > $resfile done popd
thank you.
Jeff
Haris Skiadas Department of Mathematics and Computer Science Hanover College
Hi Haris,
The script I use follows. I have saved it as an executable .sh file in the same level as my book. It goes through all the tex files in the directory below it, and runs the diff between these and the files in the directory with the backed up version. So it's not a perfect solution, but it does serve my needs.
Thanks for sharing the script with me. It gave me a few ideas on how I might be able to adjust my workflow. Much appreciated.
Jeff.