Как работать с двумя репозиториями на одних и тех же данных, но в разных сетях (которые не могут быть подключены)?

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

  • С понедельника по четверг большинство, но не все люди будут работать в сети А с некоторыми настольными ПК.
  • С пятницы по воскресенье большинство, но не все люди будут работать в сети B со своими ноутбуками
  • По соображениям безопасности нет возможности напрямую соединить сеть A и B, обмен данными возможен только с USB-накопителя.
  • Жизненно важно, чтобы история изменений в проекте была сохранена.

Проведя некоторое исследование и прочитав несколько ответов (например, два идентичных git-репозитория), у меня есть следующий план для выполнения наших требований, но я не уверен на 200%, сработает ли это (или это можно будет сделать проще), и я ' Я хотел бы получить от вас обратную связь:

  • Мы начинаем с чистого репозитория на сервере в сети A. Everbody клонирует этот репозиторий на своих настольных ПК и работает с ним (извлекает данные из репозитория на сервере в сети A и отправляет его) в одну главную ветвь.
  • В первый четверг один парень (назовем его git-admin) создает новый пустой репозиторий на своем локальном настольном ПК в сети A, добавляет его в качестве нового удаленного репозитория из сети A и переносит все данные в этот локальный пустой репозиторий.
  • Затем администратор git помещает этот пустой репозиторий на свою USB-флешку и копирует его на сервер в сети B. Теперь все, кто работает в сети B со своими ноутбуками, клонируют этот репозиторий и извлекают из него / выгружают из него.

Так хорошо, но теперь у нас есть два центральных хранилища, и может случиться так, что и в сети А, и в Б люди работают над этим. Таким образом, жизненно важно объединять их, по крайней мере, один раз в неделю, чтобы держать их рядом. История должна быть сохранена в обоих хранилищах! Я думаю, это становится немного сложнее:

  • Каждый понедельник администратор git в последний раз извлекает данные из репозитория в сети B, запускает новый пустой репозиторий на своем ноутбуке, добавляет его в качестве нового удаленного из своего репозитория сети B и помещает все данные в этот локальный пустой репозиторий на своем ноутбуке,
  • Затем он помещает этот пустой репозиторий на свою флэш-накопитель USB и копирует его на свой настольный компьютер в сети А. Затем сначала он извлекает данные из центрального репозитория в сети А, чтобы быть в курсе событий. После войны он добавляет сеть B с чистым хранилищем в качестве нового удаленного из своего хранилища, клонированную из сети A, извлекает ее из нее, разрешает все конфликты и передает как исходный удаленный хранилище в сети A, так и локальное хранилище, скопированное из сети B,
  • Теперь центральное хранилище в сети А обновлено. Затем он берет пустой репозиторий, снова помещает его на свою USB-флешку, кладет на свой ноутбук в сети B, добавляет его в качестве нового удаленного для репозитория сети B, извлекает, объединяет и передает в центральный репозиторий в сети B.

Этот процесс будет повторяться каждый понедельник и четверг (наоборот). Любые предложения, чтобы сделать это проще или это путь? Я не уверен, нужно ли работать с пустыми репозиториями и можно ли просто скопировать обычные обновленные локальные репозитории git-admin в соответствующую сеть и добавить центральные репозитории сети A и B как новый пульт (в зависимости от того, в каком он работает) и толкающий и тянущий с него.

Извините за стену текста и спасибо за помощь!

1 ответ

Два новых голых репо каждую неделю? О боже, нет!

Один репозиторий с двумя пультами дистанционного управления (для местоположений A и B) и тянет за собой цикл |

И в чистом стиле DVCS каждый Dev может иметь такой собственный "портфель" (а локальные репозитории dev имеют два пульта - Location и Briefcase).

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