Re: suggestions for version control or backup systems?

*To*: mathgroup at smc.vnet.net*Subject*: [mg112950] Re: suggestions for version control or backup systems?*From*: Albert Retey <awnl at gmx-topmail.de>*Date*: Thu, 7 Oct 2010 03:37:25 -0400 (EDT)*References*: <i8c8sa$g7l$1@smc.vnet.net> <i8erfg$hsd$1@smc.vnet.net> <i8h7jb$ce2$1@smc.vnet.net>

Hi, > The main problem I encounter is that bzr tries to merge my nb files, > which of course differ a lot from each other because of different > output cells, etc. It then screws up the nb by placing markers which > are supposed to help you resolve the conflict, which of course is just > a pain! So I want a vcs which handles binary files better and > preferably doesn't screw them up. Maybe I should also think of > deleting my output cells, on the other hand it may take some time to > recreate them... Anyway, thanks for your heads up on hg! The merging problem will probably exist for every vcs out there, since almost every vcs I know or have heard of works in a line oriented way. I think there are alternatives, which try to store and compare some kind of interpreted expression instead of plain text, but I am quite sure there is none that understands the internals of notebooks (or mathematica expression syntax in general). It would maybe be an interesting task to implement something like that in Mathematica itself :-) As far as I remember both svn and hg -- and probably most other vcs -- do this kind of automatic merging but also can just extract the two versions that conflict so you can do the merging by hand, I do that once in a while with the NotebookDiff-Utility from the old AuthorTools package. Maybe you will need some configuration or extra commands to check out the two conflicting versions instead of the one with the conflict marks. So the problem you had will not be solved by using another vcs, but maybe you will find it easier to configure one of them to not even try the automatic merges. With newer version I find it a reasonable approach to edit .m files in the frontend, which has the advantage that these can be treated as regular text code files by a vcs, so you will even be able to take advantage of automatica merges... hth, Albert