git svn不带重定基址的数据提交

git svn不带重定基址的数据提交,svn,git,git-svn,rebase,Svn,Git,Git Svn,Rebase,我们公司使用(并支持!)SVN,但我倾向于使用git。我想尝试的是拥有git存储库——每个项目一个,项目开发人员将能够从这个存储库中提取(当然,如果他们愿意的话,也可以相互提取)。但我仍然希望推动SVN的所有更改,因为SVN由我们的技术支持维护 我正在使用以下存储库测试该场景: SVN存储库-此存储库由我们的公司维护,我们的团队应该在某个时候将所有更改推送到那里 git svn克隆-这是从上面的svn克隆的git存储库-所有项目开发人员都应该在这里提交 git开发人员克隆-这是开发人员的git存

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

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

  • SVN存储库-此存储库由我们的公司维护,我们的团队应该在某个时候将所有更改推送到那里
  • git svn克隆-这是从上面的svn克隆的git存储库-所有项目开发人员都应该在这里提交
  • git开发人员克隆-这是开发人员的git存储库
  • 我注意到,直接使用“git svn rebase”和“git svn dcommit”的唯一问题是,每次从开发人员的git存储库推送到git svn克隆存储库后,一旦更改传播到svn并重新设置基础,我就必须重新设置开发人员存储库的基础。我想要实现的是避免每次推后重新调整

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

    在推送之后,我可以通过在“git svn clone”存储库中逐个检查每个git提交,并使用svn客户端将这些更改提交到svn,从而手动实现此行为。我相信“git svn dcommit”也有同样的功能,但它也会从svn同步回来,并更改commit SHA标识符,这迫使我重新设置基础


    注意:
    ——git svn dcommit的无重基
    选项没有帮助,因为在第一次提交后传播到svn
    git svn dcommit
    不允许我向svn提交更多更改,直到上一次更改重基。我曾经尝试过这种行为,可能会忽略一些事情。

    事实上,比这更糟糕。。。dcommit更改上载到SVN的提交(添加git SVN id行、更改作者信息等),即使您黑客攻击dcommit不尝试重新设置基础

    基本上,git svn不做回扣就无法从svn同步回来。一个新的gitSVN接口正在开发中,它可能会消除这个限制,但它还没有准备好


    我担心,如果您希望与SVN存储库保持同步,那么您的场景现在不重新定基就无法工作。

    关于“不重新定基就无法从SVN同步回来”。如果没有从SVN同步回来,我就可以了,我只需要同步到SVN。在这种情况下,您仍然需要在git SVN上进行大量的黑客攻击,因为它使用提交对象中的信息进行大量操作,因此在提交数据时会重写这些信息。谢谢,我也明白,即使解决了这个问题,也不会因为其他问题而让我以可以接受的方式去做我想做的事情。我可能会开始考虑在我们公司安装Git,这样它就可以在没有SVN的情况下使用。无论如何,谢谢你的回答。