3

smudge/clean git フィルターを作成しています。フィルタは、結果がフィルタによって出力されるいくつかの外部操作を実行できるように、フィルタされるファイルの名前を知る必要があります。

フィルターは標準入力から読み取られ、標準出力に書き込まれるため、フィルター処理されているファイル名を取得する方法はありますか?

たとえば、私はしたい:

git blame $0  | cut -d " " -f 4-6 | sort | uniq | sort | tail -1

このファイルの最終変更日を確認するには、または:

git grep -I --name-only -e "" -- $0

ファイルがバイナリかどうかをテストします。

$0ただし、フィルター内からこれを機能させるには、「」として何を使用すればよいかを知る必要がありますか?

4

1 に答える 1

7

説明書よりgitattributes

フィルター コマンド ラインのシーケンス "%f" は、フィルターが動作しているファイルの名前に置き換えられます。フィルターはこれをキーワード置換で使用する場合があります。例えば:

[フィルター「p4」]

   clean = git-p4-filter --clean %f
   smudge = git-p4-filter --smudge %f

多分%fあなたが欲しいものです。

于 2013-06-09T02:37:41.720 に答える