Intereting Posts
subclipse – Внезапная ошибка относительно слишком старого SVN-клиента Редактирование коллективного кода Необходимо помнить о плавном переходе с версии 1.0 на 2.0 на iOS DVCS обнаруживает движение блока кода установка ошибки аутентификации прокси-сервера SVN Kit Рекомендуемая (git) структура репозитория для файлов проекта для системы viz GitHub: Каков наилучший способ управления различными версиями приложения? Ошибка Git при попытке совершить с Visual Studio 2015 (файл opensdf) Ошибка открытия проекта из Source Control Каков самый простой способ добавить комментарий к конкретному редактору в SVN? Непрерывное развертывание из GitHub в Azure (ASP.NET 5 и MVC 6) Журнал TortoiseGit не отображает все ожидаемые сообщения о фиксации в некоторых средах SVN – хотите извлечь только имя проекта / путь и дату фиксации Как объединить несколько удаленных объектов в одну ведущую ветвь Загрузите исходный код непосредственно из Xcode 4

Командная работа с удаленным Mercurial repo, который подкрепляется SVN

Сейчас я работаю над использованием SVN. Здесь много команд, у которых есть свои собственные хранилища для проектов, над которыми они работают. Эти репозитории иногда зависят друг от друга (используя svn: external), например, какой-то конечный пользовательский проект, используя репозиторий основной команды и так далее.

Я хочу переехать из SVN в Mercurial с моей командой. Я хочу настроить рабочий процесс следующим образом

  1. Первоначально клонируйте наше текущее SVN-репо в Mercurial, поместите его на какой-то сервер и подавайте его членам команды (с помощью hg serve в первый раз)
  2. Члены команды начинают работать только с Mercural, никаких прямых SVN-сбоев, обновлений, проверок. Только push / pull to / from root Mercurial repo (был настроен на шаге 1).
  3. В конце концов (некоторые работы cron?) Наш Mercurial repo синхронизируется со старым сервером SVN, чтобы другие команды могли получить доступ к нашей работе.

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

Solutions Collecting From Web of "Командная работа с удаленным Mercurial repo, который подкрепляется SVN"

Как вы узнали, основным ограничением с HgSubversion является то, что вам нужно линеаризовать свою историю Mercurial при нажатии на Subversion. Это означает, что вы не можете иметь филиалы в своей Mercurial истории, и поэтому трудно работать вместе как команда.

Кроме того, HgSubversion будет выполнять переадресацию, когда вы нажимаете свои Mercurial changesets. Представьте, что ваша команда берет на себя обязательства по переустановке своих локальных коммитов, прежде чем нажимать на сервер Mercurial. История Mercurial выглядит так:

 ... r10 --- a1 --- a2 --- b1 --- b2 --- b3 

где Алиса и Боб сменили свои изменения, прежде чем нажимать их. При синхронизации с Subversion вы получаете:

 ... r10 --- a1 --- a2 --- b1 --- b2 --- b3 \ r11 --- r12 

и HgSubversion теперь переустанавливает Mercurial changesets поверх [r12] :

 ... r10 --- r11 --- r12 --- a1' --- a2' --- b1' --- b2' --- b3' 

У Алисы и Боба все еще есть исходные неустановленные изменения без простых чисел. Поэтому им нужно полосаться, прежде чем они выйдут из команды Mercurial server. Такой рабочий процесс требует большой осторожности.

Я как-то настраивал более простой рабочий процесс для клиента: вместо того, чтобы сбрасывать изменения Mercurial в дополнение к ревизиям Subversion, мы просто передали текущую версию файлов в Subversion. Это означает, что мы не сохраняем полную историю Mercurial в репозитории Subversion. С другой стороны, мы можем легко справиться с слияниями и еще много чего.

В приведенном выше примере сервер SVN получит r13 с состоянием репозитория Mercurial из b3 . Эта ревизия r13 будет большой: она содержит все изменения, сделанные в a1 b3 . Если люди, которые все еще используют Subversion, хотят увидеть отдельные изменения, тогда они должны будут смотреть на сервер Mercurial – сообщение о фиксации, которое мы помещаем в Subversion, имеет ссылки на отдельные изменения в hgweb для Mercurial, поэтому легко перейти туда ,

Мне интересно, возможно ли это сделать?

Да, но может иметь некоторые проблемы в не так очевидных случаях, которые не прозрачно (и автоматически) переводится с hg на svn

восходящая синхронизация с SVN, затем изменения в Mercurial поступают от удаленного члена команды

hg push, с svn-repo в разделе пути. Но, см. Выше, он не будет работать всегда и может потребоваться ручная перезагрузка перед нажатием