Децентрализованное развитие с использованием GIT и GIT-SVN

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

  •  09-10-2019
  •  | 
  •  

Вопрос

У нас 2-3 небольших команд 2-3 человека. Мы все используем GIT для Local, и SVN для центрального хранилища и GIT-SVN получил синхронизацию. Это работает все время, за исключением случаев, когда мы хотим поделиться наш кодекс между командой.

Таким образом, мы опробовали Git Pull, это создает много конфликтов, и не обнаруживает, что мы находимся на том же дереве. Это выбирает все изменения (так же, как клон, затем тянуть), конечно, я не хочу клонировать полный репо. Каждый раз, когда я хочу поделиться.

Пожалуйста, предложите лучший поток.

  1. Мы не можем избавиться от центрального СВН.
  2. Мы не можем клонировать каждый раз.
Это было полезно?

Решение

Назначить одного члена команды как «Git Hub», он / она синхронизируется с сервером SVN, другие члены команды взаимодействуют с ними, а не сервером SVN напрямую. Таким образом, Git узнает, что все члены команды находятся на одном дереве.

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

Субгит Похоже, отличная альтернатива для вас.

Субгит Это решение для сервера, он позволяет Git доступ к репозитории Subversion и наоборот. Это означает, что вы можете работать только с репозиторием Git, используя Git Client на ваш выбор.

Вам необходимо установить Subgit в ваш репозиторий Subversion один раз. После этого подгита немедленно переводит пересмотр SVN в Git Commit на каждом svn commit и Git обязуется в редакции SVN на каждом git push.

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

Чтобы добавить в ответ Chris Huang-Liver, вам нужен центральная точка для Dommit / Rebase с помощью SVN REPO.
Это не отрицает «децентрализованный» аспект Git, он просто позволяет всем работать с одним из их удаленных репозиториев, одним «центральным» репоим репоим ссылкой (то есть одной синхронизации с SVN)

Нет простого способа избежать бремени к клону все исходя из (потенциально огромных) SVN REPO, потому что в результате Git Refo не может быть разделен на подмодулы.
Это оставляет хотя бы одно «решение», которое будет включать:

  • Создание разных git рядом с главным (что синхронизируется с SVN)
  • экспортирующие патчи из основного репо
  • Применяя эти патчи для каждого GIT REPO, представляющего проект в главном Git Refo.

Это, очевидно, нужно автоматизировать, но одна команда будет сосредоточиться на один Из тех GIT REPOS в качестве его «центрального» репо, и лицо, отвечающее за синхронизацию SVN, будет обновлять эти меньшие Git Reppos с патчами, поступающими из основного (и скрытого) GIT <=> SVN REPO.

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