Доступ к макету папки со смешанными ветвями с помощью git-svn - PullRequest
1 голос
/ 27 апреля 2011

Я пытаюсь использовать git svn для подключения к нашему репозиторию компании. У нас есть немного нестандартный каталог филиалов. Как получить доступ к этому с помощью git svn, уже обсуждалось ранее, однако, у нас, похоже, есть небольшое искажение в именах ветвей, которое, кажется, мешает мне получить их все.

Давайте рассмотрим пример svn repo:

trunk/
tags/
branches/
    rootbranch/
    tku/subbranch

У нас есть филиалы на корневом уровне каталога филиалов. Но у нас есть ветви и во вложенных папках. То же самое касается тегов dir, но я думаю, что это всего лишь второй пример той же проблемы.

Если я использую файл клона git svn: /// tmp / gitsvn / svnrepo git-clone -s , я получаю только корневые ветви, как и ожидалось:

/tmp/gitsvn/git-clone$ git branch -r
  rootbranch
  tku
  trunk

Но если я клонирую, используя _git svn clone file: /// tmp / gitsvn / svnrepo git-clone2 -b ветки / / _, я получаю только подветви:

/tmp/gitsvn/git-clone2$ git branch -r
  tku/subbranch

Есть ли способ иметь оба?

Ответы [ 2 ]

3 голосов
/ 16 сентября 2011

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

В файле .git / config будет раздел, подобный следующему:

[svn-remote "svn"]
  url = http://server/svn
  fetch = trunk:refs/remotes/trunk
  branches = branches/*:refs/remotes/branches/*
  tags = tags/*:refs/remotes/tags/*

Просто добавьте еще одну запись для дополнительного каталога ветвей.Например:

branches = branches/tku/*:refs/remotes/branches/tku/*

Затем запустите git svn fetch , чтобы получить ветви из репозитория svn.

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

git svn clone http://svn.foo.org/project -T trunk -b branches -b branches/tku -t tags
0 голосов
/ 29 июля 2011

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

...