TortoiseSVN (as well as other Tortoise clients) include a script to diff notebook files in Mathematica. Diff functionality for Mathematica is implemented in the AuthorTools package (perhaps there is something better?)
The script currently works by creating a small notebook file in the temp directory, and opening it in the front end. The notebook has a big button that will do the diff and has the file names to be diffed hard coded.
A disadvantage is that the notebook with the diff code will be left in the temp directory, and won't be cleaned up. It also seems unnecessary to have an auxiliary notebook open every time we do a diff.
Is it possible to launch the diff functionality from the command line to avoid going through the temporary notebook? Or is there any other robust way to improve this process and avoid littering the temp folder with auxiliary notebooks?
Any suggestions to improve the diffing experience are welcome!
Note that since TortoiseSVN is a Windows program, I am primarily interested in Windows-based solutions.
Here's an example notebook that the script generates. I realize it's in need of cleanup, but last time I checked it worked in version 5 too (!), so I did not want to touch it unnecessarily (without visibly improving something).
Notebook[{
Cell[BoxData[ButtonBox["\<\"Compare Notebooks\"\>",
ButtonFrame->"DialogBox", Active->True, ButtonEvaluator->Automatic,
ButtonFunction:>(Needs["AuthorTools`"]; NotebookPut[Symbol["NotebookDiff"]["one.nb", "two.nb"]])
]], NotebookDefault] },
Saveable->False, Editable->False, Selectable->False, WindowToolbars->{},
WindowFrame->ModelessDialog, WindowElements->{},
WindowFrameElements->CloseBox, WindowTitle->"Diff",
ShowCellBracket->False, WindowSize->{Fit,Fit}
]
NotebookDiff
seems to work okay, did you have problems with it? – GardelNotebookDiff
can be handy for humans - but it doesn't show you what your version control system will be seeing. – Searles