git post-commit крючки - PullRequest
       14

git post-commit крючки

2 голосов
/ 18 марта 2011

У меня есть два репозитория проекта git, которые имеют два или три общих файла.

Примерно так:

Project A ------> helper_functions

Project B ------> helper_functions

Мне интересно, есть ли приемлемый метод для «обмена» этими общими помощникамифайлы между репозиториями, так что мне не нужно хранить отдельные копии в обоих репо.

Будет ли что-то похожее на хук пост-фиксации, который обновит helper_functions в проекте B при обновлении helper_functions из проекта A?Или существует более плавный способ обеспечения того, чтобы оба проекта имели самую последнюю и самую лучшую версию файла helper_functions и чтобы этот файл автоматически включался в любой пакет проекта?

Спасибо за любые идеи или ресурсы по принятымспособ решить эту проблему.

Ответы [ 2 ]

4 голосов
/ 18 марта 2011

Некоторые люди могут сказать, что это слишком много для нескольких файлов, но для меня это звучит как хороший пример использования поддержки git для подмодулей.По сути, вы должны создать новый репозиторий с именем helper_functions и добавить его к каждому из существующих репозиториев как подмодуль с:

git submodule add git://foo/bar/helper_functions.git helper_functions

Однако есть несколько тонкостей, связанных с работой с подмодулями:так что сначала стоит почитать.Мне нравится описание в руководстве по git в качестве отправной точки, но есть много других хороших объяснений, например, что из Pro Git .

я бы не сталоднако создайте хуки для фиксации и отправки субмодуля - я думаю, что лучше тщательно обдумать, когда вы хотите обновить версию субмодуля, которая зафиксирована в основном репозитории.Однако то, что я нашел весьма полезным, - это использование скрипта commit-submodule, который гарантирует, что вы передадите изменения подмодуля перед фиксацией новой версии подмодуля в хранилище.

0 голосов
/ 18 марта 2011

Я бы использовал подмодуль, но рекомендовал бы использовать «git slave» для работы с любыми обновлениями общего репозитория.

Альтернативой является использование поддерева.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...