2010-09-08 3 views
7

Этот вопрос может быть связан с тем, что я не понимаю, как ветвление работает технически в SVN и Git.Филиалы, переданные с помощью svn2git

Но когда я использую svn2git, некоторые ветви находятся в refs/remotes /, а некоторые нет. Например, trunk is/refs/remotes/trunk.

И когда я проверяю основную ветку в новом git repo, это не svn trunk, а какая-то старая ветка с прошлого года (и похоже, что она выбрана полностью случайной). Тэги перемещаются правильно.

Если я смотрю на svn repo в Trac, это похоже на правильность макета (ствол, ветви, теги) и точки ствола, где он должен. Он также выглядит как ветви, которые показаны правильно (без пультов) находятся в .git/config, остальные - нет.

Что здесь происходит и что нужно сделать для правильного преобразования svn repo? Должен ли я просто добавлять исправления для удаленных филиалов в .git/config? Однако это не решило бы проблему с багажником.

РЕДАКТИРОВАТЬ: Я только что понял что-то: thore пульты точно такие же, как и локальные ветви с той разницей, что есть локальная ветвь «master» и удаленная ветвь «пульты/туловище», все остальные 19 ветвей кажутся похожими. Кажется, проблема заключается в том, что мастер не указывает на «дистанции/ствол», а скорее на какое-то случайное совершение.

Это просто ошибка в svn2git?

+0

Можете ли вы нарисовать небольшое дерево, показывающее расположение ствола, ветвей и тегов относительно корня репо? Подожди. Я только заметил, когда это было опубликовано. Ха, ты, наверное, догадался об этом. Не знаю, как я нашел этот вопрос. – JofoCodin

ответ

0

Это должно быть ошибка. Согласно ридми в GitHub для git2svn

и что код проверяется на мастер заканчивает тем, что в настоящее время в багажнике СВН, а не какой бы ни Svn ветви последнего коммита было.

Вы может попытаться вручную указать ветви вручную, чтобы убедиться, что получит более стабильные результаты

svn2git http://svn.example.com/path/to/repo --trunk trunk --tags tags --branches branches 

Если это не работает, вы можете добавить alliase к вашему .gitconfig е Ile, которые вы могли бы работать после svn2git, который заменил бы хозяин с междугородней

[alias] 
    fixport = !sh -c 'git checkout remotes/trunk trunk && git checkout master && git reset --hard trunk' 

то, что вы делаете вашу svn2git ... как обычно, и когда это будет сделано запустить GIT fixport, и это будет проверка локальной копии пультов ДУ/багажника как магистраль и мастер сброса, чтобы это равняться.

+0

Этот вопрос уже недействителен для меня, но я принял ваш ответ, если у кого-то другая проблема. – Makis

Смежные вопросы