私はいくつかのコードを再編成しており、プログラムを使用して、差分が追加と削除の一致するペアのみで構成されていることを確認したいと思います。私はソース管理としてgitを使用しているので、うまくいけば、これを行うことができるgitに組み込まれているものがありますか?また、出現または消失した行を要約できれば非常に便利です。
そのようなツールがあるかどうか誰かが知っていますか?
私はいくつかのコードを再編成しており、プログラムを使用して、差分が追加と削除の一致するペアのみで構成されていることを確認したいと思います。私はソース管理としてgitを使用しているので、うまくいけば、これを行うことができるgitに組み込まれているものがありますか?また、出現または消失した行を要約できれば非常に便利です。
そのようなツールがあるかどうか誰かが知っていますか?
prusswanが言うように、私は現在ツールが存在するとは思わない。ただし、gitは名前の変更を検出できるため、ファイルへの変更を検出するのは難しくありません。-Mオプションは、単にdelete / add diffを実行するのではなく、名前変更を検出するためのgitでもあります。
git diff -M 18b5850a07bb
diff --git a/G b/G
index e69de29..d0a432b 100644
--- a/G
+++ b/G
@@ -0,0 +1 @@
+This is a change
diff --git a/A b/H
similarity index 100%
rename from A
rename to H
diff --git a/B b/I
similarity index 100%
rename from B
rename to I
diff --git a/C b/J
similarity index 100%
rename from C
rename to J
diff --git a/D b/K
similarity index 100%
rename from D
rename to K
diff --git a/E b/L
similarity index 100%
rename from E
rename to L
diff --git a/F b/M
similarity index 100%
rename from F
rename to M
あなたはあなたが扱っていたコンピュータ言語を言いませんでした。
SmartDifferencerファミリーのツールが役立つ可能性があります。これらのツールは、プログラミング言語の構文を比較して、行編集アクションではなく、プログラマーアクション(コピー、移動、ブロック内の識別子の名前変更)によって説明できる用語の違いを判別します。
ファイルの編集が実際にはプログラミング構造全体の単なる動きである場合、SmartDifferencerはおそらくそれを正確に教えてくれます。
別のアプローチは、Git 2.14.x / 2.15(2017年第3四半期)で可能な視覚的なアプローチです。「 」は、他の場所で削除された行と同じ新しい行を、真に新しい行とは異なる方法でペイントgit diff
するようにオプションで教えられているためです。
言い換えれば、移動した線の専用色
commit 61e89ea、commit 86b452e、commit 176841f、commit 2e2d5ac、commit e6e045f、commit 146fdb0 、commit 30b7e1e、commit bd03329、commit 0911c47 、commit 4eed0eb、commit f359713 、 commit 5af6ea9、commit4acaaaを参照してください。ff95867、コミット091f8e2、コミットb9cbfde、コミット68abc6f(2017年6月30日)Stefan Beller(stefanbeller
)。( Junio C Hamano
によってマージされました---コミットb6c4058 、2017年8月27日)gitster
git config
ドキュメントには次のものが含まれています。
diff.colorMoved
有効な
<mode>
値または真の値のいずれかに設定されている場合、差分内の移動された線の色は異なります。有効なモードの詳細については、の'--color-moved
'をgit-diff
参照してください。
単にに設定するtrue
と、デフォルトのカラーモードが使用されます。
に設定するとfalse
、移動した線は色付けされません。
詳細については、commit2e2d5acを参照してください。