Контекст
Мы разрабатываем ряд плагинов, которые собираются в приложения Eclipse RCP 3.X. Мы используем единую целевую платформу, основанную на репозиториях P2, потому что это единственная разновидность, поддерживаемая Tycho.
Целевая платформа VS SCM
Наш доступ в Интернет весьма ограничен. Мы не можем получить доступ к общедоступным репозиториям P2, даже если настроим прокси. Поэтому мы загружаем zip-файлы репозиториев P2 и помещаем их в систему управления версиями, чтобы команда могла ими поделиться и управлять версиями. Однако мы считаем, что наличие бинарного контента в SCM часто является плохой практикой.
Мы готовимся к переходу с ClearCase на Git. При этом мы рассматриваем возможность изменить способ управления нашей целевой платформой к лучшему. Мы думали о разных сценариях, но нам не хватает опыта, чтобы оценить их плюсы и минусы. Вот первые результаты наших размышлений:
Сценарий 1. Использование отдельного репозитория Git для целевой платформы
- Pros:
- Plugins are shared
- Позже мы можем вернуться к «физической» предыдущей версии целевой платформы.
- Сменить целевую платформу так же просто, как манипулировать файлами
- Cons:
- Binaries in SCM
- Каждый экземпляр репозитория использует много места на диске для хранения всей истории целевой платформы.
Сценарий 2. Использование Nexus с подключаемыми модулями для управления репозиториями P2
- Pros:
- Plugins are shared
- Облегченный репозиторий: требуется версия только файла
foo.target
.
- Cons:
- We never used Nexus previously
- Изменение содержимого целевой платформы является более сложным
- Нам нужно вручную хранить архивную копию каждой версии содержимого целевой платформы.
Вопросы
Как вы управляете версиями целевой платформы с помощью Git в закрытой корпоративной сети? Что вы думаете о приведенных выше сценариях и их соответствующих плюсах и минусах? Не могли бы вы предложить другие решения?