2011-09-25 124 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存儲庫查找,臨時結賬,合併)的腳本對我而言效果很好。