Как настроить гетерогенную многопользовательскую среду git / svn - PullRequest
3 голосов
/ 01 апреля 2011

Я работаю в команде, которая использует Subversion в качестве основной VCS, но почти все начали использовать git локально через git-svn.Теперь мы рассматриваем возможность перехода на git.

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

Кажется, проблема в том, что не может быть общего репозитория git, происходящего из репозитория Subversion.Каждый параллельный git svn merge / rebase создает новые коммиты git, которые являются дубликатами.Параллельно я имею в виду двух разработчиков, выполняющих слияние или перебазирование в своих клонах одного и того же git-репозитория.Хуже того, git svn dcommits, похоже, изменяют идентификаторы git commit.

Так возможна ли такая среда, или git-svn действительно предназначен только для однопользовательского инструмента?

1 Ответ

5 голосов
/ 01 апреля 2011

Во-первых, я не советую пытаться делать два центральных репозитория, один svn и один git, конечно, не с svn в качестве основного репозитория.SVN имеет тенденцию игнорировать хэш-идентификаторы коммитов git, поэтому это не простая улица с двусторонним движением.

Лучше кусать пулю сейчас, чем иметь дело с беспорядком позже.

SVN Читать-Только Зеркало

Одной из целей для SVN, которая, как я вижу, является действительной, если не удивительно полезной для постоянных пользователей SVN, является создание хранилища только для чтения.Другими словами, вы можете настроить svn для зеркалирования репозитория git (по крайней мере, основной ветки), разрешить извлечение, но не разрешать коммиты обратно в svn.Таким образом, если кто-то хочет просмотреть код или поведение и знаком с инструментами SVN или SVN, они могут использовать эти знания.Они просто не будут в режиме полной разработки.

Облегчите переход на Git

Причины остаться с svn over git в основном будут знакомы, поэтому ваша лучшая ставка можетbe to A:

Обучите базовому набору команд, который позволил бы кому-то перевести свое наиболее важное поведение с svn-мышления на использование git (http://git.or.cz/course/svn.html).Таким образом, они могут делать не то лучшее, что может предложить git, но они смогут выполнять простые основы, требующие совершения git.

и B:

Делегат длякакое-то время.В то время как некоторые люди изучают git, пусть они предоставляют патчи / ветки для более опытного пользователя git, чтобы объединить его функции и помогать им, пока они не овладеют скоростью и не освоятся с инструментом.

В конце концовнет ничего особенного в том, что ftp - это svn, а svn - git, чтобы воспользоваться преимуществами, вам нужно сделать довольно полный шаг.

...