TortoiseSVN(ならびにother Tortoise clients)は、Mathematicaのscript~diffノートブックファイルを含みます。 Mathematicaの差分機能はAuthorToolsパッケージに実装されています(もっと良いことがありますか?)Mathematicaのdiff機能をコマンドラインから呼び出すことは可能ですか?
スクリプトは現在、tempディレクトリに小さなノートブックファイルを作成し、フロントエンドで開くことで動作します。ノートブックには大きなボタンがあり、これはdiffを実行し、ファイル名はdiffedにハードコードされています。
不利な点は、差分コードを持つノートブックが一時ディレクトリに残され、クリーンアップされないことです。 diffを実行するたびに補助ノートブックを開く必要もないようです。
一時的なノートブックを通過しないように、コマンドラインからdiff機能を起動することはできますか?または、このプロセスを改善し、補助ノートブックで一時フォルダを浪費することを避けるために他の堅牢な方法がありますか?
diffingエクスペリエンスを改善するための任意の提案を歓迎します!
TortoiseSVNはWindowsプログラムなので、主にWindowsベースのソリューションに興味があります。
ここでは、スクリプトが生成するノートブックの例を示します。私はそれがクリーンアップを必要としていることを認識していますが、前回チェックしたバージョンはバージョン5でも動作していましたので、何かを視覚的に改善することなく不必要に触れたくありませんでした。
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}
]
興味深い評判:http://i.stack.imgur.com/2ze1M.png –
Mmaノートのバージョン管理は容易ではありません。私は通常、[この質問](http://stackoverflow.com/q/2816628/421225)のマイケルピラートの助言に従っています。私。キャッシュと履歴をオフにしてから、標準のテキストベースのdiffを使用します。 – Simon
@Simon 'NotebookDiff'はうまくいくようですが、問題はありましたか? – Szabolcs