Различные системы управления распределенной версией, работающие вместе
Мой офис имеет центральную установку Source Safe 2005, которую мы используем для управления версиями. Я не могу изменить то, что использует офис на сервере.
Я развиваюсь на ноутбуке и хочу иметь другой локальный репозиторий управления версиями, который может синхронизироваться с центральным сервером (когда он доступен) независимо от того, что этот центральный поставщик. Причина запроса заключается в том, что я могу поддерживать локальную стабильную ветку/сборку для презентаций клиентов, продолжая развиваться без необходимости перепрыгивать через пылающие обручи. Кроме того, в качестве консультанта мои клиенты могут потребовать, чтобы я использовал их поставщика контроля источника, и гибкость здесь облегчит жизнь.
Может ли какой-либо из существующих клиентов управления распределенным источником обрабатывать это?
Ответы
Ответ 1
Ну... KernelTrap имеет что-то в этом. Похоже, вы можете использовать vss2svn, чтобы передать репозиторий Source Safe в репозиторий Subversion, затем используйте очень приятный git -svn для вытащите локальный репозиторий git.
Я бы предположил, что коммиты назад к VSS не будут плавным, автоматическим процессом, используя этот метод.
Ответ 2
Вы должны иметь возможность проверить текущую версию кода, а затем создать репозиторий git. Обновление этого параметра и его фиксация в локальном хранилище git должно быть безболезненным. Как и клонирование.
Единственное, что вы должны сделать, чтобы они оба игнорировали друг друга (я сделал что-то подобное с SVN), возившись с соответствующими файлами игнорирования. Я предполагаю, что SourceSafe позволяет игнорировать вещи. И вам нужно будет выполнить определенные операции дважды (например, сказать, что вы удаляете файл).
Ответ 3
Этот эпизод HanselMinutes охватывает именно то, что я надеялся услышать. По-видимому, Git может быть использован локально, а затем привязан к внешним хранилищам subversion/vss по мере необходимости. Они говорят об этом 14-15 минут.
Ответ 4
когда-нибудь я работаю в компании, использующей VSS (и в других компаниях, которые используют другие менее известные SCM), но я предпочитаю использовать SVN (когда-нибудь я попробую GIT) для активной разработки, для меня и моей группы.
Прежде всего, эта ситуация - только хорошая идея, если фиксация VSS несколько за месяц, потому что работа с другим SCM (чем VSS) дает вам больше гибкости, но commint для VSS из SVN является дорогостоящим во времени.
Мое решение было:
VSS → SVN: у меня есть linux script (или ant script или XXX script)), которые копируют из работы каталога VSS в текущую версию SVN, а затем обновляют SVN-клиент и обновляют/объединяют/commit для SVN. При этом вы обновляетесь из изменений остальной компании, использующей VSS.
SVN → VSS: таким образом вам нужна проверка всех ваших файлов изменений на VSS, тогда вы можете просто использовать обратный script для копирования из текущего каталога SVN обновления (игнорировать каталоги .svn) и скопировать в текущее обновление VSS-каталога, обновление и фиксация.
Но помните, что в нескольких случаях стоит того, чтобы сделать это.