Re: Google Summer of Code 2009: GIT
- From
- Rogan Dawes <lists@dawes.za.net>
- Date
- Mar 11, 2009, 15:27 UTC
- Message-ID
- <49B7D84B.6080501@dawes.za.net>
- In-Reply-To
- <ab9fa62a0903110713k2a21cefbj1e7cd3c126aca8f9@mail.gmail.com>
saurabh gupta wrote:
Show 17 quoted lines
>>> However, I think in merging and notifying about the conflicts in the xml >>> files, other things can also be put forward. Like the GUI will show the >>> number of tags differing and what are the new tags added and even if any >>> tag is renamed with the content unchanged. If possible, how about >>> showing a tree like structure (just like DOM model) to compare (or diff) >>> the two xml files. >> >> This is a little bit too low-level for my liking. Taking the OpenOffice >> example again, the GUI should not expose XML at all... > > hmmmm.....I think I get your point somewhat. Let me do some research > over the formats and the background formats in which tools like > OpenOffice store the data in xml files. May be for docbooks by > OpenOffice, the best thing would be to give the *diff* output in terms > of lines. > I would also appreciate to know what you think and would like to see > the output in such case.
I think that the implementation may make use of features inherent in the file format where possible. e.g. I suspect that OpenOffice has the ability to show "Tracked changes", and then allow the user to view the changes using the actual OpenOffice implementation.
I suspect that that will get a lot more difficult with e.g. conflicts and merges, because I doubt that OOo has the ability to show changes from multiple versions.
But I have to agree with Dscho, that the output would have to depend on the file type (OOo document), not just the data structure (e.g. XML) inside the file.
A regular XML file diff could choose to ignore/collapse whitespace (pretty printing) when doing the comparison, to show things like moving a branch further down the tree.
e.g.
<i>text</i>
vs
<b><i>text</i></b>
vs
<b> <i>text</i> </b>
For plain XML, a textual diff might choose to show it with each element un-indented, and a standard text diff output:
+ <b> <i> text </i> + </b>
while a GUI diff might show the new element highlighted in a tree:
#green#<b>#/green# <i> text
I think that where reasonable that you should aim to have a text-only version that could be wrapped by a GUI. Obviously, this would be meaningless when diffing a JPG, for instance.
Ok, that was a bit rambling. I hope it helped more than it confused.
Rogan