git-svn - Получить удаленную ветку, которая уже существует в svn, когда мой мастер уже является веткой. Объясни это. git / config

Это немного странный вопрос, учитывая, как команда, к которой я присоединился, использует SVN. По сути, репозиторий svn следует стандартной компоновке, но ствол на самом деле не изменялся в течение 1,5 лет или около того, и работа, как правило, происходит только в ветвях и ветвях ветвей. Таким образом, я использовал git-svn для клонирования из ветки, которая представляет активную ветку для нашего следующего выпуска, и это то, что мастер отслеживает в моем локальном репозитории git. С этого момента давайте назовем эту ветку в svn 'release'. Использование git-svn для этой цели - это просто зануда.

Теперь кто-то создал ветку функции на основе ' release ', которую я собираюсь назвать' функцией ', которую я хотел бы передать в свою локальную ветвь, а также зафиксировать. Конечно, я могу просто клонировать эту ветвь в другой каталог / репозиторий git локально, но мне бы очень хотелось, чтобы `` функция '' отображалась в локальной ветке в моем локальном репозитории git, чтобы выполнить слияние между эти двое настолько прямолинейны, насколько это возможно. Я видел другие сообщения stackoverflow.com, показывающие, как это работает, если вы использовали git svn init с - stdlayout , но я не делал этого в моем случае для причины, указанные выше.

Вот мой .git / config

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[svn-remote "svn"]
    url = https://our.svn.server/svn/root/branches/release
    fetch = :refs/remotes/git-svn

Я предполагаю, что в моем разделе [svn-remote] мне нужно ветки = $ something но я не Я не знаю, что это за $ something в данном случае, и какое заклинание git checkout и другие команды мне понадобятся после того, как я внесу это изменение в .git / config.

Есть предложения?


Изменить - Следующие действия работают:

Итак, я начал с нуля и выполнил следующую команду клонирования:

git svn clone https: //my.svn.server/svn/root -T branch / branch_I_want_as_master -b branch

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

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[svn-remote "svn"]
    url = https://my.svn.server/svn/root
    fetch = branches/branch_I_want_as_master:refs/remotes/trunk
    branches = branches/*:refs/remotes/*

Итак, я знаю, что это работает - я могу git checkout -b name-of-a-branch name-of-a-branch , и это дает мне удаленная ветка в моем локальном репозитории git. Предыдущие ответы не были точными ответами, которые мне были нужны, но я проголосовал за них, поскольку они были полезны.

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

10
задан whaley 23 February 2011 в 12:32
поделиться