混帐SVN提交错误的分支/如何通过混帐SVN合并SVN分支(git-svn commits to w

2019-10-17 13:34发布

我有我检查了与混帐SVN,使用SVN存储库中--stdlayout选项(当时,回购是空的)。

然后,我在主分支工作了一段时间。 当使用git svn dcommit ,它会使用svn提交我的变化https://my.host/repo/trunk像它应该。

在某些时候,我创建了一个名为“算术”使用Git分支。 后来我想创建SVN分支太多,所以我做了一个git svn branch arithmetics然后git branch --set-upstream arithmetics remotes/arithmetics由网站的建议。 我想这是那里的东西出了问题,因为我得到了一个警告有关--set-upstream被弃用。

当调用git svn dcommit ,它将致力于https://my.host/repo/branches/arithmetics ,到目前为止,一切顺利。 但后来我发现,这dcommit将承诺该分支不管当前签出分支在Git仓库,当我试图合并分支回主。

我甚至尝试创建从SVN新克隆,合并分支到主那里。 我也尝试过检查了trunk明确与git checkout -b local/trunk remotes/trunk ,然后合并分支成,然后git svn dcommit 。 它总是会提交到分支一次。

我怎样才能解决这个问题?

PS:我用git rebase的合并,因为我阅读,合并,提交用的git-svn的问题,所以我没有任何的那些。

Answer 1:

你不能dcommit 的Git分支到SVN仓库,因为Git和SVN有分支机构的完全不同的概念。 Git的合并,然后调用dcommit将线性你的历史记录(不太一样与底垫),然后推到当前已签出的分支。

下面是从的手册页的重要组成部分, git svn

合并跟踪
虽然混帐SVN可以跟踪采用标准布局库拷贝史(包括分支和标签),这还不能代表这里面发生的git回上游SVN用户的合并历史。 因此,建议用户保持历史尽可能线性内git的缓和与SVN兼容性(请参见下面的告诫部分)。

此外, 注意事项部分有专门针对您的问题段落:

运行git合并或混帐拉不建议您计划从因为Subversion用户无法看到任何合并你已经做出dcommit一个分支。 此外,如果合并或从一个Git分支,是一个SVN分支的镜像拉,dcommit可能犯的错误的分支。

如果合并,请注意以下规则:混帐SVN dcommit将尝试提交的SVN的顶部提交命名

 git log --grep=^git-svn-id: --first-parent -1 


文章来源: git-svn commits to wrong branch / how to merge svn branch via git-svn