git svn dcommit没有rebasing

我们公司使用(并支持!)SVN,但我倾向于使用git。 我想要尝试的是拥有git仓库 - 每个项目一个,项目开发人员可以从这个仓库中获取(当然,如果他们愿意的话,可以互相拉)。 但我仍然希望将所有更改推送到SVN,因为SVN由我们的技术支持维护。

我正在使用以下存储库测试场景:

  • SVN版本库 - 这个版本由我们公司维护,我们的团队应该在某个时候推动所有更改
  • git-svn-clone - 这是从SVN上面克隆的git仓库 - 所有项目开发者都应该在这里提交它们的提交
  • git-dev-clone - 这是开发人员的git存储库。
  • 直接使用'git svn rebase'和'git svn dcommit'我注意到的唯一问题是,在每次从开发人员的git存储库推送到git-svn-clone存储库后,只要发生更改,就必须重新绑定开发人员的存储库将被传播到SVN并重新发布。 我想要实现的目标是在每次推动后避免重组。

    请注意,我假设每个项目开发人员将只使用git存储库,并且没有人会直接使用SVN。

    我能够通过在推送并使用SVN客户端将这些更改提交给SVN后,在'git-svn-clone'存储库中逐个检查每个git提交来手动实现此行为。 我相信'git svn dcommit'也是如此,但是它也会从SVN同步并更改提交SHA标识符,这迫使我重新绑定。

    PS: --no-rebase选项的git svn dcommit没有帮助,因为在第一次提交传播到SVN之后git svn dcommit不允许我在SVN之前提交更多的更改,直到之前的版本被重新发布为止。 我曾尝试过这种行为,可能会忽略某些东西。


    它实际上比这更糟糕......即使你攻击了dcommit以不尝试重新绑定,dcommit也会更改上传到SVN的提交(添加git-svn-id行,更改作者信息等)。

    基本上,git-svn无法从SVN同步回来,而没有进行rebase。 一个新的git < - > SVN接口可能会解除这个限制,但它还没有准备好。

    我担心,如果您想与SVN存储库保持同步,那么您的方案现在将无法工作。

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

    上一篇: git svn dcommit without rebasing

    下一篇: How to resync git with svn tree?