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, а затем указать это в качестве входных данных для вашего фактического правила.