Поддержка собственного поставщика с помощью composer и git Symfony2 Bundle

Я создал вендорную библиотеку (Symfony2 Bundle) в репозитории git. К нему добавлен composer.json.

В нескольких проектах я использую его как поставщика (vcs в composer.json). Все работает нормально, если я не хочу модифицировать исходный пакет/вендор.

Я не могу нажать на него напрямую из проекта, который использует пакет. Мне нужно клонировать репозиторий пакета в новый каталог, изменить его там и нажать. Это неудобно, так как пакет не работает сам по себе, поэтому коммиты — это своего рода «попробуй и посмотри, что произойдет».

Как лучше всего поддерживать мой собственный репозиторий поставщиков?


person admi99    schedule 12.03.2013    source источник
comment
Почему вы не можете отправить его прямо из каталога поставщика? Git фактически поддерживает вложенные репозитории. Ты это пробовал?   -  person Cerad    schedule 12.03.2013


Ответы (2)


Если ваш поставщик установлен из исходного кода, вы можете изменить и отправить его. Для принудительной установки из исходного кода используйте параметр --prefer-source:

composer install/update --prefer-source

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

То же самое работает для сторонних пакетов. В этом случае вам просто нужно добавить git remote к вашей вилке, чтобы нажать на нее.

person Elnur Abdurrakhimov    schedule 12.03.2013

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

Единственное, что вам нужно сначала убедиться, что работает, это установить из composer.

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

person Chris Sedlmayr    schedule 12.03.2013
comment
Спасибо, идея хорошая. Однако это было бы неудобно при работе с несколькими проектами в командах. - person admi99; 13.03.2013