2011-06-28 72 views
1

我跟着this發表了關於如何使用git svn創建和簽出分支的問題,以便實際上在svn回收站上創建分支。這很好。git svn master to branch to master - 仍然試圖提交分支

當我完成了我的分支,我做了一個結賬主,並做了一個git合併。這工作得很好。然後,我去svn回購提交合並回幹,所以發出了一個git svn dcommit。

它試圖提交到分支。儘管我現在已經檢查了主分支。我錯過了什麼?

$ git svn branch -m "test branch" test_branch 
$ git checkout --track -b test_branch remotes/test_branch 
$ Hack hack hack... 
$ git svn dcommit --dry-run # Make sure you're committing to the right SVN branch 
$ git svn dcommit    # Commit changes to "test_branch" branch in SVN 
$ git checkout master 
$ git merge test-branch 
$ git svn dcommit # why is this committing to the branch instead of trunk?? 

這是我的.git /配置的情況下,它的事項

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
    logallrefupdates = true 
    ignorecase = true 
[svn-remote "svn"] 
    url = mysvnrepos.com/svn/project 
    fetch = trunk:refs/remotes/git-svn 
    branches = branches/*:refs/remotes/* 
[branch "test_branch"] 
    remote = . 
    merge = refs/remotes/test_branch 

回答

0

我以爲有人問這個了,但我不能再找到它。無論如何,帶分支的git-svn很複雜。您必須在svn端創建空分支,使用git svn branch或簡單svn mkdir。然後你用git簽出這些分支,然後在不使用git級別合併的情況下重新提交它們。這樣,git分支在他們的祖先中指定了正確的svn分支,並且dcommit提交到正確的分支。你可以驗證分支git-svn會使用git svn info來承諾。

+0

這對未來都很好,但我需要解決現在發生的事情,我顯然沒有做好。 – Gregg

+0

@Gregg'git checkout master; git rebase test_branch'將消除應該恢復順序的合併提交。 – Tobu

+0

它沒有。我做了這兩個命令,然後是一個git svn dcommit --dry-run。仍然說它是承諾我的分支。 – Gregg

相關問題