Подтвердить что ты не робот

Git -svn: как я могу создать новую ветвь svn через git?

У меня есть репозиторий git, который отслеживает репозиторий svn. Я клонировал его с помощью --stdlayout.

Я создал новую локальную ветвь с помощью git checkout -b foobar

Теперь я хочу, чтобы эта ветка оказалась в …/branches/foobar в репозитории svn.

Как мне это сделать?

(вырезано множество текстов для расследования. см. историю вопроса, если вам интересно)

4b9b3361

Ответ 1

от git v1.6.1, git svn branch.

Из git документов:

    branch
        Create a branch in the SVN repository.

        -m, --message
            Allows to specify the commit message.

        -t, --tag
            Create a tag by using the tags_subdir instead of the branches_subdir
            specified during git svn init.

Предыдущие версии git не предоставляют способ создания ветки svn.

Ответ 2

Я знаю, что этот вопрос был дан ответ некоторое время назад, но после его чтения я мог бы помочь добавить примеры конкретной команды ww wv svn branch и связать ее с типичным рабочим процессом.

Как ответил kch, используйте git svn branch. Вот полный пример (обратите внимание на -n для теста на сухой тест):

git svn branch -n  -m "Branch for authentication bug" auth_bug

Если это хорошо, сервер отвечает с ответом следующим образом:

Копирование https://scm-server.com/svn/portal/trunk в r8914 на https://scm-server.com/svn/portal/branches/auth_bug...

И без переключателя -n сервер, вероятно, добавит что-то вроде:

Найдена возможная точка ветвления: https://scm-server.com/svn/portal/trunk = > https://scm-server.com/portal/branches/auth_bug, 8914

Найдено родительский филиал: (Ссылки/пультов ДУ /auth _bug)

d731b1fa028d30d685fe260f5bb912cbf59e1971

Следующий родительский элемент с do_switch

Успешно последовал родительский r8915 = 6ed10c57afcec62e9077fbeed74a326eaa4863b8

(ссылки/пультов ДУ /auth _bug)

Лучшая его часть, теперь вы можете создать локальную ветку на основе вашей удаленной ветки, например:

git checkout -b local/auth_bug auth_bug

Это означает "проверить и создать локальную ветвь с именем auth_bug и заставить ее следовать удаленной ветке (последний параметр) auth_bug

Проверьте, что ваша локальная ветка работает на этой удаленной ветке с помощью dcommit с --dry-run (-n):

git svn dcommit -n

И сервер SVN должен ответить новым именем ветки:

Выполнение https://scm-server.com/svn/portal/branches/auth_bug...

Ответ 3

@kch Я просто (7 декабря 2008 года) скомпилировал тэг v1.6.1-rc1 git и содержит команду ветвления git svn и документацию для него. Поэтому выпуск v1.6.1 git должен (надеюсь) содержать эту команду.