Синхронизация историй между локальными и удаленными ртутными репозиториями

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

Тогда проблема заключается в том, что личный серверный клон полностью не синхронизирован с локальным репозиторием, потому что он не был перебазирован. Мы не используем правильные ветки, поэтому слияние + ребазирование и трансплантация / трансплантация, похоже, не то, что мы использовали бы для синхронизации репозиториев.

Клон на стороне сервера должен иметь ту же историю, что и локальный репозиторий, либо он будет извлекать и выдвигать ВСЕ наборы изменений и занимать много времени при решении несуществующих конфликтов. Как можно получить клон на стороне сервера, чтобы иметь ту же историю, что и основной и локальный репозитории без разборки и извлечения из основного? В идеале нам не нужно было бы заходить на сервер.

2 ответа

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

Единственный способ иметь только "основную" историю - это удалить другие репо (или даже повторно их клонировать), и это должно быть сделано одновременно для всех репо.

Ps и не надо ребазировать. Это только для частных репо.

Перебазирование является детерминированным, поэтому вы можете повторно выполнить перебазирование в клиентских клонах.

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

Другие вопросы по тегам