Как написать хук обновления для подмодулей git? - PullRequest
0 голосов
/ 09 сентября 2011

Я хотел бы скопировать некоторые файлы в подмодулях в моем каталоге "vendor / assets" в другой каталог - "public / assets" Я слышал о хуках обновления, но я не уверен, работают ли они для подмодулей. Я написал простой хук и запустил обновление из командной строки, но это не сработало.

Мой хук обновления выглядит так:

#.git/gooks/update.rb

#!/usr/bin/env ruby

puts "Copying files..."

Так это вообще возможно?

Кстати, я использую Braid для управления своими подмодулями.

1 Ответ

1 голос
/ 09 сентября 2011

Хук update запускается только тогда, когда кто-то запихнул в текущий репозиторий, что не похоже на то, что вы хотите. Вы можете использовать хук post-commit, если хотите копировать эти файлы на место каждый раз, когда вы создаете коммит в своем хранилище. (Этого должно быть достаточно, потому что вам нужно будет зафиксировать новую версию любого подмодуля в основном проекте, когда вы измените фиксацию, в которой должен находиться подмодуль. Это было бы естественной точкой для обновления файлов в public/assets.)

Вы говорите, что ваш тестовый хук не запущен - это может быть просто из-за неправильного имени. Хук обновления должен быть исполняемым файлом с именем .git/hooks/update (нет, без суффикса .rb). Точно так же хук после фиксации должен быть .git/hooks/post-commit.

Вы не должны создавать ловушки в каком-либо конкретном подмодуле для этой задачи, поскольку действие, которое будет выполнять ловушка, относится к основному проекту. Из-за этого не имеет значения, беспокоит ли вас изменение из-за фиксации новой версии субмодулей или просто обновления любого случайного файла.

Для написания хуков вы найдете официальную документацию с хитростями , полезную, и, возможно, эти дополнительные советы .

...