git svn master来分支去掌握

我跟着这篇文章介绍了如何使用git svn创建和检出分支,以便分支实际上是在svn回收站上创建的。 这很好。

当我完成我的分支时,我完成了对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 / config以防万一

[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

我以为有人问过这个问题,但我再也找不到了。 无论如何,带分支的git-svn很复杂。 您必须使用git svn branch或plain svn mkdir在svn端创建空分支。 然后你用git签出这些分支,然后在不使用git级别合并的情况下重新提交它们。 这样,git分支在他们的祖先中指定了正确的svn分支,并且dcommit提交到正确的分支。 你可以验证分支git-svn会提交使用git svn info

链接地址: http://www.djcxy.com/p/89511.html

上一篇: git svn master to branch to master

下一篇: Git with two remote repos, one git, one svn