たとえば、「Example.cs」というファイルがあり、リビジョン 800 と 1200 の間でこのファイルに加えられたすべての変更を確認したいと考えています。そのファイルでコミットを行うときに入力された特定の問題番号に関連するコード変更。
Subversion/TortoiseSVN を使用してこれらを表示する方法はありますか?
たとえば、「Example.cs」というファイルがあり、リビジョン 800 と 1200 の間でこのファイルに加えられたすべての変更を確認したいと考えています。そのファイルでコミットを行うときに入力された特定の問題番号に関連するコード変更。
Subversion/TortoiseSVN を使用してこれらを表示する方法はありますか?
Blame を選択するときは、比較したいリビジョン番号を入力しますが、私のバージョンの TortioseSVN では、下部に「テキスト ビューアーを使用して Blame を表示する」というチェック ボックスがあります。これにより、ローカルのテキスト ビューアで Blame ファイルが開きます。
列はスペースで区切られているため、これを MS Excel で簡単に開いて、データを列に並べ替えることができます。
最後に、各列にフィルターを追加し、[リビジョン] 列で、変更を表示するすべてのリビジョンにチェックを入れるだけです。
レスキューのための Bash スクリプト:
#!/bin/bash
FILE=file
ISSUE="#12"
for rev in $(svn log ${FILE} | grep ^r[0-9] | sed 's/r\([0-9]*\)\ .*/\1/g')
do
svn log -r${rev} | tail -n +3 | head -n -1 | grep "${ISSUE}" > /dev/null
if [ $? -eq 0 ]; then
svn diff ${FILE} -c${rev}
fi
done
上記のスクリプトは、作業コピーに存在するファイル FILE のログを検索し、コミット メッセージで文字列 ISSUE を探し、そのリビジョンの差分をコマンド ラインに出力します。