FROM : John Labovitz
DATE : Mon Nov 05 20:11:54 2007
On Nov 5, 2007, at 10:55 AM, Jon Hess wrote:
> They are human readable, and while diff support works, it could be
> much better. Merging is still not possible. XIB files are a step in
> the right direction, but they aren't a solution.
My apologies for continuing this thread off into non-Cocoa-dev
discussions, but I wanted to point out that most SCM systems do not
*require* diffing & merging to be line-oriented. That happens to be
the default, as most data checked into those SCM systems are in a
format that's amenable to line-oriented comparison. But often the SCM
system itself is ignorant to the format of the files, in terms of
storage, access, and difference-detection.
For example, Subversion's "diff" command supports the "--diff-cmd"
argument, which specifies an alternate tool to use for diffs; and the
"merge" command similarly supports the "--diff3-cmd" for merging. At
the lowest level, Subversion uses *binary* diffs. Those binary diffs
aren't mergeable directly, which is the reason for using external
tools like traditional diff/diff3.
There's no reason that someone couldn't create a super-diff/merge tool
that handled not only line-oriented files, but XIB files, other XML
files, and other diff-able data. It would be really groovy to see a
graphical nib-diff/merge tool!
If you're curious how this works, see a couple of examples at:
http://www.wsanchez.net/blog/2005/08/filemerge_and_subversion.html
http://ssel.vub.ac.be/ssel/internal:fmdiff
--John
DATE : Mon Nov 05 20:11:54 2007
On Nov 5, 2007, at 10:55 AM, Jon Hess wrote:
> They are human readable, and while diff support works, it could be
> much better. Merging is still not possible. XIB files are a step in
> the right direction, but they aren't a solution.
My apologies for continuing this thread off into non-Cocoa-dev
discussions, but I wanted to point out that most SCM systems do not
*require* diffing & merging to be line-oriented. That happens to be
the default, as most data checked into those SCM systems are in a
format that's amenable to line-oriented comparison. But often the SCM
system itself is ignorant to the format of the files, in terms of
storage, access, and difference-detection.
For example, Subversion's "diff" command supports the "--diff-cmd"
argument, which specifies an alternate tool to use for diffs; and the
"merge" command similarly supports the "--diff3-cmd" for merging. At
the lowest level, Subversion uses *binary* diffs. Those binary diffs
aren't mergeable directly, which is the reason for using external
tools like traditional diff/diff3.
There's no reason that someone couldn't create a super-diff/merge tool
that handled not only line-oriented files, but XIB files, other XML
files, and other diff-able data. It would be really groovy to see a
graphical nib-diff/merge tool!
If you're curious how this works, see a couple of examples at:
http://www.wsanchez.net/blog/2005/08/filemerge_and_subversion.html
http://ssel.vub.ac.be/ssel/internal:fmdiff
--John






Cocoa mail archive

