Как мне переключиться на транк после клонирования всего хранилища SVN с помощью git-svn? - PullRequest
0 голосов
/ 02 ноября 2011

Я клонировал весь репозиторий SVN (включая все ветви), используя git-svn.Проблема в том, что если я запускаю git branch, я ничего не получаю обратно.Если я запускаю git branch -a, я получаю:

git-svn

Что мне теперь делать, чтобы начать работать с SVN trunk?

РЕДАКТИРОВАТЬ: репо организовано в стандартной компоновке, нокогда я вытащил, я сделал это так:

git svn clone http://server/repo ( without any other options )

, а не как

git svn clone http://server/repo/trunk

Мой gitconfig выглядит так:

[svn-remote "svn"]
    url = svn_url
    fetch = :refs/remotes/git-svn 

Ответы [ 3 ]

2 голосов
/ 02 ноября 2011

Чтобы избежать полного откатывания, вы можете просто обновить файл .git/config следующим образом:

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

Затем удалите .git/svn/.metadata и снова запустите git svn fetch

PS: Это было вдохновлено тем, что я узнал из Git-SVN с несколькими филиалами? когда мне приходилось иметь дело с репо с нестандартным макетом.

1 голос
/ 12 мая 2012

Вы можете клонировать SVN-репозиторий с помощью SmartGit . Он определяет вашу конфигурацию соединительных линий / веток / тегов и правильно настраивает макет, поэтому вам не нужно об этом беспокоиться.

1 голос
/ 02 ноября 2011

Вы должны использовать переключатель -s (стандартное расположение) при клонировании:

git svn -s clone http://server/repo

Этот ключ сообщит git-svn создавать ветви и теги из каталогов, найденных в ^/branches, соответственно^/tags.^/trunk будет сопоставлен с master веткой git.

Боюсь, вам придется повторно клонировать свой svn-репозиторий…

...