2011-09-25 115 views
2

据我了解,git-svn不支持推送合并提交。git:在合并时使用git-svn

有没有办法使它与这样的提交工作?

我们尝试使用rebase创建线性历史记录。但是,这会导致空白错误发生冲突。有没有一种线性化历史的方式,所以没有冲突?

回答

0

基础重建合并进入SVN信息的最简单的方法是用来压制它们:

假设我们重订的分支devtrunk

git checkout trunk 
git merge --squash dev 

您可能需要修复真正的合并trunkdev之间的冲突。最后你有一个提交你可以很好git svn dcommit

这种方法的不足之处在于,你松散了SVN提交的粒度。如果这是一个问题,您可以为git使用基于rebase的合并策略(例如http://unethicalblogger.com/2010/04/02/a-rebase-based-workflow.html)。

0

这不是直接的,但可能的。

  1. 退房的特性分支

    $ git checkout feature1 
    
  2. 创建一个Subversion分支,preferrably具有相同的名称和重订本地的Git分支

    $ git svn branch feature1 
    $ git rebase remotes/feature1 
    
  3. 当你把你的变化,他们会去Subversion分支,而不是去干线。

    $ git svn dcommit 
    

只有这样,才能做电子商务合并,我知道是使用临时SVN结账,并使用svn merge的。对于可以自动执行并且没有冲突的合并,编写最后一个步骤(SVN存储库查找,临时结账,合并)的脚本对我而言效果很好。