LINUX.ORG.RU
решено ФорумAdmin

pre-commit hook как правильно обработать событие?

 


0

1

Вообще что я хотел? Я хотел, чтобы pre-commit hook выполнялся, производил обработку файлов в директория1 и помещал видоизмененные файлы в директория2, но после pre-commit hook получается так, что обработанные файлы лежат в директория2, но в текущий коммит они не попадают т.е после commit если сделать

git status

То будет сообщение типа:

file dir2/some1.cpp modified

Т.е файл обработался, а в коммит не попал. Попробовал добавить в конце pre-commit hook git add ., но это не помогло. Как быть?

★★★★

Я хотел, чтобы pre-commit hook выполнялся, производил обработку файлов в директория1 и помещал видоизмененные файлы в директория2

Странное пожелание.

Как быть?

Не делать системой контроля версий странные вещи.

u-235
()
Ответ на: комментарий от bryak

Я предлагаю не хранить в репозитории сгенерированные файлы. А файлы генерировать сборочным скриптом.

u-235
()
Ответ на: комментарий от u-235

Я предлагаю не хранить в репозитории сгенерированные файлы. А файлы генерировать сборочным скриптом.

Ну а если кейс именно такой? Это не проект, в котором при деплое можно какие-то скрипты выполнять. Это обычная репа

bryak ★★★★
() автор топика
Ответ на: комментарий от bryak

Ну а если кейс именно такой?

Кейс здесь очевиден: проблема XY.

Притом, судя по тому, что ты сам стесняешься его описать, где-то внутри уже понимаешь, что творишь полную дичь.

Chiffchaff
()
Ответ на: комментарий от Chiffchaff

Кейс здесь очевиден: проблема XY.

Нет тут никакой проблемы XY. Есть репозиторий, в нем хранятся файлы в дир1. Мне надо перед коммитом произвести обработку файлов и сложить результат в дир2. Это не код проекта, cpp - рандомный тип файлов. Т.е нет в репе никакого скрипта сборки, который постоянно выполняется. Надо средствами гит. Вручную это делать - можно забыть. Надо автоматизированно. Можно было бы каким-нибудь direnv это сделать, но зачем тянуть лишнюю сущность в это всё

bryak ★★★★
() автор топика

Как быть?

Патчить исходники git.

dataman ★★★★★
()
Ответ на: комментарий от bryak

Нет тут никакой проблемы XY.

Однозначно XY, потому что ты не говоришь, что за файлы и что за обработка. О причинах можно только догадываться, скорее всего, стесняешься прямо сказать о проблеме Y, потому что понимаешь, что делаешь дичь.

pre-commit - инструмент не для этого. Это не его предназначение. Здесь нужен make, или ещё какой-нибдуь другой инструмент.

Или настроенный CI/CD, в котором будут производиться эти действия.

Не зная о проблеме Y, невозможно ответить.

Chiffchaff
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.