"git svn clone" только клоны ствола?(Ожидается клонирование всего хранилища) - PullRequest
2 голосов
/ 11 декабря 2011

У меня есть SVN-репозиторий, который выглядит примерно так:

  • ветвь
    • ... различные ветви (пока нет)
  • теги
    • ... различные теги (пока нет)
  • Ствол
    • общий
    • документ
    • extlib
    • проектируемый

Я бегу:

git svn clone --stdlayout https://[SVN URL]/svn/MyProject "C:\_build\WorkingFolders\Myproject_gitcopy"

Команда, кажется, выполняется успешно.

Я ожидаю увидеть папки "branch", "tags" и "trunk" в клонированном каталоге, так как мы клонировали весь репозиторий. Вместо этого я вижу "common", "doc", "extlib" и "proj".

Похоже, что git только клонировал ствол моего хранилища. Кто-нибудь знает, почему это может быть и как это исправить? Или я просто вижу это неправильно?

Заранее спасибо за любую помощь!

Ответы [ 3 ]

4 голосов
/ 11 декабря 2011

На самом деле, git svn пытается помочь вам, будучи умным: -).

git трактует теги и ветки иначе, чем Subversion.В Subversion теги и ветви не существуют как отдельные технические концепции;это всего лишь копии дерева в специальных каталогах.

git на самом деле имеет ветви как «настоящие» объекты.Поэтому git svn автоматически преобразует ветви и теги Subversion в ветви git (*).

Чтобы увидеть ветви в git, выполните

git branch -a

(- a включает ветки удаленного отслеживания).Это должно показать вам ветви и теги из репозитория SVN.

(*) Примечание: git svn не создает теги git из тегов Subversion, потому что в Subversion технически нет различия между тегами и ветвями (это простоконвенция).Поскольку не совсем понятно, как различать теги и ветви в Subversion, git svn просто импортирует их все как ветви.Смотрите, например, Ошибка Debian # 501761: git-svn --tags должен как минимум / try / обрабатывать теги как теги .

2 голосов
/ 11 декабря 2011

В Git у вас нет структуры каталогов, такой как ствол, теги и ветви.Обычно в основной ветке git вы увидите все, что было в SVN-транке. Но, основываясь на информации, которую вы предоставили, где вы упомянули, что в Subversion вообще нет тегов или веток, вы не увидите теги или ветви в Git..

Кроме того, основываясь на опции --stdlayout, вы сказали git-svn bridge принимать компоновку по умолчанию для отдельных стволов, тегов и ветвей.

0 голосов
/ 11 декабря 2011

Как только вы запустите несколько веток svn (как видно из git branch -a), вы можете переключить ваше рабочее пространство с помощью

git checkout <abranchname>

и обратно с

git checkout master
...