Я пытаюсь отойти от подмодулей git для разработки в моей команде. Самая важная причина этого в том, что, когда член команды совершает изменения в подмодуле, но забывает проталкивать в исходное состояние, но нажимает ссылку на эту новую фиксацию в "корневом" проекте, происхождение нарушается, а другие разработчики получают ошибка reference is not a tree
. Это может быть проблематично, если разработчик, заданный перед тем, как вернуться домой, и эта ссылка, которая не является деревом, указывает на фиксацию на ноутбуке разработчиков, который находится в его сумке, где-то в поезде.
Я пытаюсь заменить подмодули git на композитор. Мое рассуждение состоит в том, что если git не знает о моих зависимостях, эти зависимости не могут нарушить репо. Я знаю, как добавлять пакеты из packagist, и мне также удалось добавить наши собственные репозитории git для композитора, в основном с помощью этого сообщения в блоге.
Проблема и последний фрагмент головоломки заключается в том, что наши зависимости - это git репозитории, над которыми мы активно работаем. Если я нажму обновление на одну из наших зависимостей, я бы хотел, чтобы локальные копии разработчиков обновлялись до этой последней версии, когда они делают composer update
. Самое близкое, что я получил, это создать тег для каждого изменения в зависимости, а затем обновить мой composer.json с идентификатором этого нового тега.
Я хотел бы знать, есть ли способ, чтобы композитор всегда проверял последнюю фиксацию определенной ветки или, если это невозможно, всегда получать последний тег, когда я делаю composer update
. Я действительно не против тегов, я просто не хочу постоянно обновлять composer.json во время разработки.
Файл композитора, который у меня есть для тестирования:
{
"config": {
"vendor-dir": "app/vendor"
},
"repositories":
[
{
"type": "package",
"package": {
"name": "wkjagt/seagull",
"version": "1.0",
"source": {
"url": "[email protected]:wkjagt/Seagull.git",
"type": "git",
"reference": "master"
}
}
}
],
"require": {
"wkjagt/seagull": "1.0.*"
}
}
Я ожидал, что 1.0.*
возьмет последний тег, начиная с 1.0, но как только композитор уже имеет 1.0.1, он не получит 1.0.2, если я его создам. Любая помощь с этим будет очень оценена.