08 July 2013

TortoiseSVNから脱却し完全にWindowsとさようならし、マックに移行したいウェブエンジニアは多いはず。ただしTortosiseSVNで出来てMacのSVNクライアントで出来ないことの1つとして、特定のリビジョン間の差分をエクスポートするがよく挙げられます。

そこで、ググってたどり着いたのがGitやSubversionの差分ファイルを抽出するShellです。

まぁ。ここのページそのまんまなんですが、一応備忘録的に書き残しておきます。

準備

$ cd /usr/local/sbin
$ wget https://raw.github.com/gist/1258524/bef227c642d2e94cc0395a0d68505c6abba8e091/export-diff.py
$ chmod  x export-diff.py 僕の環境には/usr/local/の中にsbinがいなかったので

$ mkdir sbin

しました。 準備はこれだけです。

使い方

$ svn diff -r 差分の始点リビジョン:差分の終点リビジョン --summarize | export-diff.py 保存先ディレクトリ

$ svn diff -r 122:134 --summarize | export-diff.py /User/☓☓☓☓/Desktop/diff

これだけです。正直、MacのSVNクライアント(VersionsとかCornerstone)は、良さそうだけどTortoiseSVNと比較すると不満が残る。なので、頑張ってコマンドラインでやったほうが個人的には良いと思う。

後は、WinMerge的な何かでDiffを解決出来ればWindowsは本格的に要らなくなる。

因みにGitの場合も同じスクリプトで解決出来ます。

git diff --name-status HEAD~1 | export-diff.py /Users/macbookpro/Desktop/diff

こんなかんじで git diff –name-status

の後に起点となるHEADから遡るリビジョンの数(1遡る場合は~1、2遡る場合は~2)を入れてパイプでつないであげるだけです。