2015-09-14 4 views
-1

У меня есть проект в Symfony2, который поддерживает несколько ветвей в Git: , testing и некоторые другие. Файл composer.json отличается от каждой ветви, поэтому мне нужно постоянно запускать composer update, чтобы обновлять зависимости и/или удалять старые или новые библиотеки, которые могут вызывать нежелательное поведение.Обращение с проектом Symfony2 и разветвлением Git

Сейчас я учусь и пытаюсь написать несколько тестов с использованием BDD: Behat + норок, и я не хочу иметь, что изменения на develop ветви, так что я создал testing и сделал все эти изменения в этой отрасли, но, как я сказал, что основной проблемой является запуск composer update в любое время, когда я переключаю ветви.

Какой правильный способ справиться с этим? Как бы вы это сделали? Любой совет? Я несколько раз схожу с одной и той же команды, а затем синхронизирую свой локальный код (хост Windows) на PHPStorm с удаленным кодом (сервер Linux). Идеи?

ответ

1

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

Basic:

  • На .lock вниз - Убедитесь, что каждая ветвь имеет покончил файл блокировки , Есть причина его right in the Composer documentation. Слишком мало проектов, похоже, ценят SemVer, и даже те, кто может время от времени подкрадываться, могут позволить себе перерыв.
  • Будьте конкретны При запуске обновления композитора, убедитесь, что вы ориентируетесь на конкретных пакетов, которые различаются между ветвями (например: composer update doctrine/dbal).
    • Еще не сделано, не запускайте update. Это может привести к ошибочному обновлению пакета в филиале, на который вы не намеревались. Лучше использовать composer install.
  • Почему бы и нет? - Может ли быть просто иметь отдельный клон вашего проекта, посвященный этой ветке? Если вы видите, что вы регулярно работаете в обоих, избавляйтесь от всей головной боли в переходящих ветвях. В конце концов, дисковое пространство дешево.
    • Удалить все ветки из местных, за исключением тех, которые вас интересуют. Установка Git Push/Pull to 'Simple', чтобы избежать случайных сбоев.

Умеренный или выше

  • лениться, пойти выпить кофе - Рассмотрим после оформления заказа крючка. Для примера вы можете увидеть here. Наслаждайтесь запасными циклами, чтобы схватить кофе, назовите наш следующий тест.
  • Сверните свой собственный - Установите локальный экземпляр Satis. Я заметил заметное улучшение в наших проектах после того, как наша команда добавила локальный экземпляр Satis с зеркалированием наших основных зависимостей.
  • VM - Переход вашего проекта на использование виртуальной машины.Инструменты на основе графического интерфейса, такие как PuPHPet или Phansible, могут облегчить вам все. Это не решит проблему вашего композитора, но сокращение продолжительности поездки с помощью пульта дистанционного управления для синхронизации, вероятно, будет стоить времени на инвестиции.
  • Config tweak - Измените каталог поставщика композитора на основе каждой ветви. См. this previous answer.
    • Примечания: Это имеет высокую вероятность добавления некоторых осложнений в тестирование из-за неожиданные/отраслевые специфическими разрешения ошибок и т.д.
  • Platform.sh:
    1. Настройки счет с Platform.sh
    2. ???
    3. Прибыль

Надеемся, что некоторая комбинация вышеуказанного поможет вам найти некоторые улучшения!

Смежные вопросы