git-svn:我如何通过git创build一个新的svn分支?

我有一个跟踪svn仓库的git仓库。 我使用--stdlayout克隆它。

我通过git checkout -b foobar创build了一个新的本地分支

现在我想把这个分支放在svn仓库的…/branches/foobar中。

我如何去做呢?

(剪下大量的调查文字,如果你在意的话,看看问题历史)

我知道这个问题已经被回答了一阵子,但是在阅读之后,我可能会帮助添加特定的git svn branch命令的例子,并将其与典型的工作stream程相关联。

像kch回答,使用git svn branch 。 这里是一个完整的例子,(注意-n为干运行testing):

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

如果这一切顺利,服务器回复这样的答案:

将r8914上的https://scm-server.com/svn/portal/trunk复制到https://scm-server.com/svn/portal/branches/auth_bug

如果没有-n开关,服务器可能会添加如下内容:

find可能的分支点: https : //scm-server.com/svn/portal/trunk => https://scm-server.com/portal/branches/auth_bug,8914

find分行家长:(refs / remotes / auth_bug)

d731b1fa028d30d685fe260f5bb912cbf59e1971

继父母后,do_switch

成功遵循父项r8915 = 6ed10c57afcec62e9077fbeed74a326eaa4863b8

(参考文献/遥控器/ auth_bug)

最好的部分,现在你可以创build一个基于你的远程分支的本地分支,如下所示:

 git checkout -b local/auth_bug auth_bug 

这意味着“签出并创build名为auth_bug本地分支,并使其跟随远程分支(最后一个参数) auth_bug

通过使用带有--dry-run-n )的--dry-run来testing您的本地分支在远程分支上的工作情况:

 git svn dcommit -n 

而SVN服务器应该用新的分支名称回复:

致力于https://scm-server.com/svn/portal/branches/auth_bug

作为git v1.6.1, git svn branch可用。

从git文档:

    科
        在SVN仓库中创build一个分支。

         -m, - 消息
            允许指定提交消息。

         -t,--tag
            使用tags_subdir而不是branches_subdir创build一个标签
            在git svn init中指定。

旧版本的git不提供创buildsvn分支的方法。

@kch我刚刚(2008年12月7日)编译了git的v1.6.1-rc1标签,它包含git svn分支命令及其文档。 所以git的v1.6.1版本应该(希望)包含这个命令。