git создать двоичный файл при оформлении заказа - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь создать файлы при git checkout, например, создать PDF-файл из текстового файла или изображение из исходного файла асимптотики. Я знаю, что могу просто извлечь исходные файлы и затем обработать их вручную, но я бы предпочел, чтобы это делалось автоматически. До сих пор я пытался играть с фильтром smudge, но кажется, что smudge может только изменить исходный файл, но не создавать новый двоичный файл. Любые идеи о том, как создать двоичный файл из исходного файла во время проверки?

Мой неудачный фильтр пятен для обработки асимптотических файлов. Хорошо работает, если вызывается напрямую в shell, но не через git:

#!/bin/bash
cat $1
asy $1 >/dev/null

1 Ответ

0 голосов
/ 17 января 2020

Хорошо, с комментарием @ torek мне удалось найти несколько работающее решение, создав собственный хук после оформления заказа. Этот хук (в .git/hooks/post-checkout) запускает асимптоту для всех файлов * .asy после извлечения. Таким образом, он не только работает с извлекаемыми файлами, и поэтому может стать довольно медленным в большом проекте с большим количеством асимптотических файлов. Но это работает как-то, и я надеюсь, что это будет полезно и кому-то еще.

#!/bin/bash

printf '\npost-checkout hook\nregenerates all asymptote files\n'

# Now find all files ending with .asy and run asymptote on them:
find . -type f -name '*.asy' -execdir asy \{\} \;
# Note that this will recompile ALL asymptote files, not only the possibly changed ones.
# This is because I have no clue on how to check what changed during checkout.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...