git-svn не выделяет ветки, только транк - PullRequest
6 голосов
/ 23 августа 2009

Я работаю с репозиторием SVN, который выложен так:

$SVN/[project]/trunk
$SVN/[project]/branches/[user]/[branch]
$SVN/[project]/tags/releases/[tag]

Мой .git / config выглядит так:

[svn-remote "svn"]
  url = $SVN   
  fetch = project/trunk:refs/remotes/trunk   
  branches = project/branches/*/*:refs/remotes/*  

Когда я смотрю на ветку git -a, я вижу все удаленные ветви. Допустим, я хочу проверить один, поработать над ним, а затем зафиксировать изменения обратно. Вот что я пытаюсь сделать:

git checkout -b comments erik/comments
.... work, commit locally ....
git svn dcommit

Однако dcommit всегда выдвигает к $ SVN / project / trunk. git svn info всегда сообщает URL как $ SVN / project / trunk

Я пытался использовать --track, я пытался сбросить с помощью --hard. У меня нет идей здесь. Я подозреваю, что это мой [svn-remote], но это всего лишь догадка.

Ответы [ 3 ]

1 голос
/ 25 августа 2009

Ветвь erik/comments уже существует в SVN?

Я работаю следующим образом:

git svn fetch #update any newly created branches
git checkout davec/new-feature # on remote branch, git may warn you
git checkout -b new-feature davec/new-feature # assumes this exists in SVN
# hack
# commit
git svn dcommit

Я понимаю, что git checkout -b local remote - это одношаговая версия того, что я делаю в два этапа, однако, похоже, это работает.

Другой вариант - заменить ваш конфиг вашим именем пользователя, например,

branches = project/branches/erik/*:refs/remotes/*

А потом

git checkout new-feature # remote branch
git checkout -b new-feature-branch # local
1 голос
/ 26 августа 2009

Похоже, это более или менее соответствует тому, что я ищу: Клонирование нестандартного хранилища Svn с помощью Git-Svn

У меня все еще есть проблема с некоторыми изменениями, которые не отображаются, но это на другой день. Спасибо всем!

0 голосов
/ 23 августа 2009

Вы можете попробовать svn2git и git2svn , так как они учитывают нестандартные макеты SVN.

Они используют параметры --tags и --branches git svn, и даже если вы не используете скрипты, которые я упомянул выше, вы можете использовать эти параметры для получения данных в правильные места в вашем хранилище SVN.

...