Каков хороший шаблон использования Mercurial для этой настройки?

StackOverflow https://stackoverflow.com/questions/4617

  •  08-06-2019
  •  | 
  •  

Вопрос

У нас есть два разработчика в одной закрытой (тьфу, дурацкая правительственная) сети, Еще один разработчик в паре минут езды по дороге, а четвертый разработчик на другом конце страны.Электронная почта, ftp и носители для удаления - это все возможные способы передачи данных для людей, находящихся в разных сетях.

Я один из двух разработчиков закрытой сети, считайте нас "главной" локацией.

Какая настройка Mercurial лучше всего подходит для группы?Каков наилучший способ передавать изменения удаленным разработчикам / от них?Поскольку я отвечаю за это, я решил, что мне придется сохранить по крайней мере одно главное репо с другим локальным репо, в котором я могу развиваться.Каждому другому человеку должен просто понадобиться клон мастера.Правильно ли это?Я предполагаю, что это также делает меня ответственным за слияние?

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

Это было полезно?

Решение

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

При синхронизации другим способом вы бы создали патч, а они отправили электронное письмо или флэш-накопитель удаленным разработчикам, чтобы они исправили свою систему.Тебе понадобится хорошее общение в команде, чувак, я рад, что я не на твоем месте.

Это мои единственные предложения - ну, очевидное, дайте им VPN-соединение!Я бы с удовольствием послушал, как все проходит, какие планы укладываются в еженедельный график и так далее.

Другие советы

Патчи - это простое и универсальное решение.

Для перемещения по большим группам изменений (особенно бинарных изменений и слияний) Mercurial предлагает бинарные пакеты.Пакет - это, по сути, двоичный файл, который отправляется по сети, когда вы делаете hg push, но здесь это записано в файл.

Давайте представим, что я каким-то образом получил клон (с помощью флэш-накопителя, DVD и т.д.).Назови это upstream.Затем я создаю второй клон, называю его devel.Я занимаюсь всем своим развитием в devel и совершать множество коммитов, слияний и т.д.Поскольку Mercurial распространен, я могу делать все это в автономном режиме.

Чтобы увидеть, какие наборы изменений отсутствуют в upstream Я знаю

% hg outgoing ../upstream

Когда у меня есть что отправить, я могу использовать

% hg bundle changes.hg ../upstream

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

Получатель пакета может сделать

% hg incoming changes.hg

чтобы просмотреть список наборов изменений и

% hg pull changes.hg

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

Обратите внимание, что upstream репозиторий используется только как удобный способ запомнить, какие наборы изменений уже найдены в вышестоящем репозитории.Вы также можете просто записать идентификатор набора изменений и использовать hg bundle --base при комплектации необходимо указать базовый (общий) набор изменений.Видишь hg help bundle или посмотрите в вики.

Правильно.Единственный способ, которым что-либо попадает в закрытую сеть, - это через флэш-накопитель.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top