Proper diffs with ODF files in Git or Mercurial
www-verimag.imag.fr
www-verimag.imag.fr
Would would be even better would be if:
a) Git diff/merge gets ability to look into zip/archive files, treating them as sub-trees of files. diff should be not too tricky. Merge is more awkward, because you have to create a new zip/archive which is compatible with the format of the parents.
b) Git diff/merge gets ability to work well on XML files, and be XML-element-based, not line-based.
With those, full version control with branching and merging of ODF files, plus many other interesting file types, falls out almost "naturally".
I use wdiff (although it's slightly kludgy) with documents and colorize the output: http://homepages.inf.ed.ac.uk/imurray2/compnotes/cwdiff/
In the mean time I'm using my (trivial) cwdiff wrapper in place of diff in tools that don't have a built-in option. I think it could be called from the oodiff utility here, where it would work equally well with any versioning system.
The benefit with this approach is that it works with exactly the same commands that I use for source control.
I'm now thinking about how most elegantly add markup features for things like highlighting text, adding labels, inline commenting, muti-media embeds, and text formatting both simple and complex. any suggestions? The naive thing to do is to include a <span> based markup format that complements what is already being done with font-size,color etc but im worried that it will become a mess. Both in terms of document size and git diff.
also, are there any examples of products that successfully leveraged version control systems to create large project management tools?