15

を使用して差分を表示するgit diffと、各変更は次のような行で始まります。

@@ -28,41 +20,10 @@ namespace ConsoleApplication1

C の場合、最後の部分は非常に説明的です。たとえば、変更が発生した関数が示されます。しかし、C# の場合、名前空間しか表示されないため、あまり役に立ちません。インデントされていない最後の行が表示されているためだと思います。これを設定する方法はありますか?

4

2 に答える 2

20

私はそれを見つけました、その行はハンクヘッダーと呼ばれ、ドキュメントはそれをカスタマイズする方法を述べています:

カスタムハンクヘッダーの定義

テキストdiff出力の変更の各グループ(「ハンク」と呼ばれる)には、次の形式の行が接頭辞として付けられます。

@@ -k,l +n,m @@ TEXT

これはハンクヘッダーと呼ばれます。「TEXT」部分は、デフォルトでは、アルファベット、アンダースコア、またはドル記号で始まる行です。これはGNUdiff -p出力が使用するものと一致します。ただし、このデフォルトの選択は一部のコンテンツには適していないため、カスタマイズされたパターンを使用して選択を行うことができます。

まず、.gitattributesで、diffパスに属性を割り当てます。

*.tex   diff=tex

次に、「diff.tex.xfuncname」構成を定義して、ハンクヘッダー「TEXT」として表示する行に一致する正規表現を指定します。$GIT_DIR/config次のようにファイル(または$HOME/.gitconfigファイル)にセクションを追加します。

[diff "tex"]
        xfuncname = "^(\\\\(sub)*section\\{.*)$"

ノート。単一レベルのバックスラッシュは構成ファイルパーサーによって使用されるため、バックスラッシュを2倍にする必要があります。上記のパターンは、円記号で始まり、行の終わりまで、サブの後にセクションが続き、中括弧が続く0回以上の行を選択します。

于 2010-08-04T20:48:12.390 に答える
4

gitattributesのマンページ、「差分テキストの生成」セクション、および例:diff.csharp.xfuncname構成(を検索xfuncname)を参照してください。

于 2010-08-04T20:51:31.837 に答える