2013-06-08 3 views
2

Я создаю фильтр smudge/clean git. Фильтру необходимо знать имя файла, который фильтруется, чтобы он мог выполнять некоторые внешние операции, которые , результат которого будет выдан фильтром.git найти имя файла, отфильтрованного фильтром smudge/clean

Поскольку фильтры считываются из stdin и записываются в stdout, есть ли способ до получить отфильтрованное имя файла?

, например, я хочу:

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

, чтобы узнать дату последнего изменения в этом файле или:

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

, чтобы проверить, если файл является двоичным.

Однако, мне нужно знать, что я должен использовать как «$0», чтобы сделать эту работу внутри фильтра?

ответ

5

От gitattributesmanual

Sequence «% F» в командной строке фильтра заменяется именем файла фильтра работают. Фильтр может использовать это при замене ключевых слов. Например:

[фильтр "p4"]

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

Может быть %f является то, что вы хотите.

+0

Это похоже на то, что я искал. Я проверю и дам вам знать. – MERM

+0

@MERM удачи :) – dyng

Смежные вопросы