-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
First of all: I am not exactly shure if this belongs into -user if it should be put into the dev mailing list please tell me to do so
Today I ran some experiments on collaborative work Inkscape. I put a file in a simple Hg-repository, created two branches, made some changes to each of them and afterwards tried to merge them back together. while doing so I ran into 3 Problems:
The first one can't be changed by Inkscape: when you add objects to the same layer in both branches you need to tell the diff tool to insert them after each others so no big deal The second one is that Inkscape saves the zoom and view position; while its a bit annoying and i don’t relay see the advantage of saving those its easy to resolve. The third one is the reason for this mail: the svg format was designed not to waste too much bandwidth for path definitions (http://www.w3.org/TR/SVG/paths.html#PathDataGeneralInformation) so it was allowed to put skip some whitespaces, have relative and absolute formats and so on. While its not necessary to use it Inkscape actually uses some of those optimizations for size. That is where it gets problematic: No line based diff algorithm will ever be able to understand
d="M 94.560583,882.94114 202.33942,447.30755 149.72092,186.54185 C 322.59461,172.3981 497.26518,91.769646 666.84911,199.34693 l 44.50099,59.86379 6.19919,124.61 -138.89214,182.52301 - -292.02038,376.68278 z"
it would be way better if Inkscape would save all the commands in their own line with the correct command in front so you can put other lines in between without breaking everything:
d="M94.560583,882.94114 M202.33942,447.30755 M149.72092,186.54185 C322.59461,172.3981 C497.26518,91.769646 C666.84911,199.34693 l44.50099,59.86379 l6.19919,124.61 l-138.89214,182.52301 l-292.02038,376.68278 z"
would allow adding a point to the line by just adding a line without creating a huge diff. Additionally it would be good to never use relative coordinates (l) as changing one point would change two lines otherwise Please note that this suggestion is for the so-called Inkscape-SVG only (as that is the one people will use to work ), it should obviously be optimized as much as possible in the plain svg format.
- -- Yannik Völker