У моей команды есть локальная сеть разработки, которая физически не связана с какой-либо внешней сетью. Это договорное обязательство, которого НЕЛЬЗЯ избежать. Мы также должны координировать свои действия с командой, которая находится на другом конце страны и, как предполагалось ранее, не имеет прямого сетевого подключения к нам. Наш единственный метод передачи данных включает копирование данных на USB-диск и отправку по электронной почте / ftp / и т. Д.
ПРИМЕЧАНИЕ. Не будем обсуждать проблему сетевого подключения или очевидный недостаток безопасности при доступе к USB-диску. Эти вопросы не подлежат обсуждению.
Мы все еще убеждаем внешнюю команду использовать Mercurial (в настоящее время не используйте ЛЮБУЮ SCM). В оставшейся части этого вопроса предположим, что они используют Mercurial. Мы собираемся заставить их руку сейчас.
Мы перешли на Mercurial в надежде, что сможем использовать распределенную природу для лучшей синхронизации с внешней командой. Внутри мы используем Mercurial во многом как SCM центрального сервера. Каждый разработчик клонирует репозиторий из главного репозитория на вашем сервере интеграции. Изменения вносятся / извлекаются из этого центрального местоположения.
Вот собственное содержание вопроса:
Как лучше всего сообщить об изменениях удаленной команде (при условии, что они используют аналогичную нам настройку Mercurial)? Должен ли я иметь локальное главное репо для локального push / pull) и репозиторий локальной интеграции для удаленного push / pull? Как мне избежать сложных проблем слияния, которые могут возникнуть? Если мы будем использовать пакеты Mercurial для отправки изменений, кто будет выполнять слияние и против какого репозитория?