手順の概要
- diffプログラムを - 新しいdiffプログラムを使用して
- を並べ替えラインを理解して1 - セットあなたのgitの設定
diffプログラム:
だから、それはgitのは、あなたの差分PROGRを呼び出すことが判明次の引数としています:だからここ
> my_diff_tool <filename> <old_location> <old_hash> <old_mode> <new_location> <new_hash> <new_mode>
は、あなたが望むものに近い何かをする最も簡単な差分ツールです。ファイルを読み込んで、新しい行と設定された比較を使って古い行を出力します。ここで
#!/usr/bin/python
import sys
old = open(sys.argv[2]).read().splitlines()
new = open(sys.argv[5]).read().splitlines()
print "-"* 80
print "Filename: %s" % sys.argv[1]
# Simple set method
for line in set(old) - set(new):
print '- %s' % line
for line in set(new) - set(old):
print '+ %s' % line
if set(new) == set(old):
print "Text reordering only"
が、これはどのようなdiffが希望の出力対出力の例です:
my_diff_tool明らか
Filename: test.txt
- luctus pellentesque.
+ luctus pellentesque. Puric huma te.
差分
diff --git a/test.txt b/test.txt
index 2ec8f4b..797e2ad 100644
--- a/test.txt
+++ b/test.txt
@@ -4,15 +4,15 @@ dolor quis feugiat. Nullam vel interdum leo, a placerat elit. Mauris quis
faucibus dui.
Nullam eu sapien quis ex convallis tincidunt. Mauris tristique mauris ac
-luctus pellentesque.
+luctus pellentesque. Puric huma te.
Duis at imperdiet lacus. Sed malesuada elit vitae arcu semper, at fringilla
purus rhoncus. Sed vestibulum pellentesque libero in interdum. Fusce elementum
ornare vulputate.
+Nam sed enim at nisi tincidunt accumsan eu nec nisl. Duis suscipit hendrerit
+fermentum. Sed mattis purus congue velit aliquet, non placerat lectus varius.
+
Donec placerat, purus ac aliquet ullamcorper, elit leo accumsan ante, sed
lacinia leo sem sed metus. Morbi lacinia porttitor ante, eget consequat
libero accumsan in. Nunc sit amet lectus magna.
-
-Nam sed enim at nisi tincidunt accumsan eu nec nisl. Duis suscipit hendrerit
-fermentum. Sed mattis purus congue velit aliquet, non placerat lectus varius.
、向上させることがたくさんあります。たとえば、セットは重複する行を無視します。並べ替えを設定するので、新しい行がたくさんある場合は分かりにくいです。
これらの改善は、読者への課題として残されています。新しいツールを使用するようにGitの設定を設定する新しいdiffプログラム
を使用
は
簡単です。上記のように.gitconfig
を変更することもできます。
> git config diff.external /location/to/your/diff/tool/my_diff_tool
あなたの差分ツールが実行可能であるか、またはあなたがそうエラー(fatal: cannot exec '/location/to/your/diff/tool/my_diff_tool': Permission denied
)を取得することを確認したいと思う:内蔵の差分で
> chmod +x /location/to/your/diff/tool/my_diff_tool
ないが、あなたはgitのを持つことができます「外部差分」を使用します。それでも、このようなdiff(これはコメントであり、答えではない理由です)を見つけること(または書くこと)の問題が残っています。 – torek
私がこのような状況で使うトリックは、比較の前に何らかの形でテキストファイルを "標準的"にすることです。通常、ソートして並べ替えられたファイルを比較します。インデントの削除や句読点が必要な場合もあります。 –
@torekプログラマがこのような差分を書くのはどれくらい難しいでしょうか? Github Desktop OSXやSourcetreeのようなGUIクライアントが書かれれば、外部の差分を使うことができますか? – incandescentman