Git зафиксирует SHA как часть двоичного файла

Я строю проект с tup и хотел бы включить SHA текущего коммита в бинарный файл. Проблема в том, что tup не распознает зависимости в каталоге.git, а файл версии не перестраивается при изменении git HEAD.

Проблемный Tupfile содержит:

: |> git rev-parse HEAD > %o |> version-file

Проблема выглядит так:

% tup
[...]
[ tup ] [0.068s] Executing Commands...
 1) [0.026s] git rev-parse HEAD > version-file                                                                                                                                                                    
 [ ] 100%
% git commit --allow-empty -m "Some commit"
[master b9a0874] Some commit
% tup
[ tup ] [0.000s] Scanning filesystem...
[ tup ] [0.001s] Reading in new environment variables...
[ tup ] [0.001s] No Tupfiles to parse.
[ tup ] [0.001s] No files to delete.
[ tup ] [0.001s] No commands to execute.
[ tup ] [0.001s] Updated.

Добавление любых файлов в.git в качестве зависимостей приводит к:

tup error: You specified a path '.git/refs/heads/*' that contains a hidden filename (since it begins with a '.' character). Tup ignores these files - please remove references to it from the Tupfile.

Как сделать так, чтобы файл версии перестраивался при изменении текущего коммита Git?

0 ответов

Вы смотрели на run ./script args функциональность? Вы могли бы иметь правило в вашем Tupfile поговорке run generate_git_rule.shи в этом сценарии оболочки вы можете сначала обновить файл с нужной вам версией git, а затем указать это в качестве входных данных для вашего фактического правила.

Другие вопросы по тегам