インデントされただけの修正を、どうソースレビューするのか(良い解決策求む)→解決
元のソース
public class test { public static void main(String[] args) { System.out.println("Hello, World!"); } }
修正後のソース
public class test { public static void main(String[] args) { for(int i=0; i<5; i++) { System.out.println("Hello, World!"); } } }
svn diffを取ってみると
>svn diff test.java Index: test.java =================================================================== --- test.java (revision 1) +++ test.java (working copy) @@ -1,5 +1,7 @@ public class test { public static void main(String[] args) { - System.out.println("Hello, World!"); + for(int i=0; i<5; i++) { + System.out.println("Hello, World!"); + } } } \ No newline at end of file >
何が言いたいかというと
System.out.println("Hello, World!");
の行は、インデントされただけなのですが、
diffは、行の追加&削除で出てきます。
上のケースは一行だけだから、
目で見れば、インデントされただけで、余計な修正が入っていない
というのは分かるのですが、これが数十行に渡った場合、
目で見ただけでは、インデントされただけなのか、
あるいは、なにか余計な修正が入ってしまっているのか、
すぐには判断できません。
こういう場合、みなさんどうやってレビュー(というか比較)するのでしょうね。
一応の解決策
手間はかかりますが、
それぞれの部分をコピペして、インデントを調整した上で、
それぞれ新しいファイルに保存し、
そのファイル同士を比較するという方法がありますが、
非常にめんどくさいです。
(でも、あんまり信用できないプログラマのソースを見るときは、そうしてました)
他に何か良い方法ないですかね。
空白を無視して比較
@sakuroさん
@senzogawaさん>svn diff -x -b test.java Index: test.java =================================================================== --- test.java (リビジョン 5) +++ test.java (作業コピー) @@ -1,6 +1,8 @@ public class test { public static void main(String[] args) { + for(int i=0; i<5; i++) { System.out.println("Hello, World!"); } + } } >
for文のところだけ差分として検出されてますね。
ただ、本来空白の差分として検出すべきもの(あるかどうかはさておき)も、
除外されてしまうというデメリットはあります。