Finally, a real Mac graphical "differ" that is
suitable for use from the command line
(Or from your remote Unix system.)
suitable for use from the command line
(Or from your remote Unix system.)
![]() |
Download RoaringDiff
Requires Mac OS X 10.4 and the Apple Developer Tools. RoaringDiff is a Universal application for both Intel and PowerPC Macs. RoaringDiff is freeware. This is beta quality code; I'm using it, but there's not enough miles on it yet. Please share bug reports with me. mitch.haile@gmail.com Download (550 KB) Current version: 1.0.28 |
Fun Features
- Additions, deletions, and changes to the file are shown in different colors.
- The vertical scrollbar provides a "heads-up" preview of the differences, making easy to spot the magnitude and the density of the differences.
- A handy "Differences" menu enables quick jumping to any change.
- At the bottom of the screen, a horiztonal comparison view is provided that assists in visualizing subtle changes to individual lines.
RoaringDiff is...
- A native Mac OS X application (Universal Binary for PowerPC and Intel).
- Controllable from the command line and suitable for p4 diff or svn diff operations from the Terminal.
- A 1.0 release, which means missing "obvious" features and some bugs. :-)
- Not a "diff3" replacement.
- Not a merge tool.
Using with 'svn' command line
You can point svn to RoaringDiff manually every time you run svn diff:$ svn diff --diff-cmd /Applications/RoaringDiff.app/Contents/MacOS/RoaringDiffThis becomes tedious quickly. If you plan to use RoaringDiff for most of your diffing, edit ~/.subversion/config and change diff-cmd in that file:
### Set diff-cmd to the absolute path of your 'diff' program. ### This will override the compile-time default, which is to use ### Subversion's internal diff implementation. # diff-cmd = diff_program (diff, gdiff, etc.) diff-cmd = /Applications/RoaringDiff.app/Contents/MacOS/RoaringDiffTo use the regular GNU diff from time to time when diff-cmd is set, you can run:
$ svn diff --diff-cmd diff
Using with 'p4' command line
For use with Perforce, just set P4DIFF to the RoaringDiff executable. You can do this in your shell configuration (~/.profile for bash users).export P4DIFF=/Applications/RoaringDiff.app/Contents/MacOS/RoaringDiffTo use the regular GNU diff from time to time when P4DIFF is set, bash users can run:
$ P4DIFF=diff p4 diff
Known Bugs/RFEs
- Port QuickDraw rendering code to Quartz (150).
- Closing the diff window should quit the app if the app was started from the command line (152).
- Extremely large files suffer from poor performance and possibly other problems (149).
- Reversing the diff direction does not update the "Differences" menu (145).
- Add X11-style geometry flags to the command line options to control what screen(s) to show the window on, and the dimensions of the window (147).
- The pop-up menu list of recently viewed files will include temporary files from p4 or svn; these should be removed or flagged as missing from the filesystem (154).
- Remove the dependency on GNU diff (156).
- The maximum line width is 262,144 characters (155).
- There are some minor issues with disabling diff features (e.g., do not compare whitespace) and the rendering of the right file. The right file is rendered as a set of changes to the left, so if changes are ignored, they are not shown on the right (157).
Feedback
I mostly wrote RoaringDiff because it is a tool that I want to use. If you find it useful, I'd love to hear how you're using it. My main pet peeve was the lack of a GUI differ than has "proper" command-line control for using with Perforce and Subversion.I wanted something like xxdiff on the Mac (but xxdiff has some strangeness that bugs me, too). opendiff(1) drives me crazy--I want "synchronous diffing" and control over the colors and geometry.
Send me mail: mitch.haile@gmail.com.
