gpt4 book ai didi

svn - git svn dcommit 没有 rebase

转载 作者:太空狗 更新时间:2023-10-29 13:10:31 25 4
gpt4 key购买 nike

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

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

  1. SVN 存储库 - 这个由我们公司维护,我们的团队应该在某个时候将所有更改推送到那里
  2. git-svn-clone - 这是从上面的 SVN 克隆的 git 存储库 - 所有项目开发人员都应该将他们的提交推送到这里
  3. git-dev-clone - 这是开发人员的 git 存储库。

我注意到直接使用“git svn rebase”和“git svn dcommit”的唯一问题是每次从开发人员的 git 存储库推送到 git-svn-clone 存储库后,我都必须将开发人员的存储库 rebase 为一旦更改将传播到 SVN 并重新定位。我想要实现的是避免在每次推送后重新定位。

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

我能够通过在推送后在“git-svn-clone”存储库中逐一检查每个 git 提交并使用 SVN 客户端将这些更改提交到 SVN 来手动实现此行为。我相信 'git svn dcommit' 做同样的事情,但它也从 SVN 同步回来并更改提交 SHA 标识符,这迫使我 rebase 。

P.S.:--no-rebase 选项对于 git svn dcommit 没有帮助,因为在第一次提交传播到 SVN git svn dcommit 之后不允许我对 SVN 进行更多更改,直到之前的更改被重新设置。我已经尝试过一次这种行为,可能会忽略一些事情。

最佳答案

实际上比这更糟糕...dcommit 更改了上传到 SVN 的提交(添加 git-svn-id 行,更改作者身份信息等),即使您 hackdcommit 不尝试 rebase 也是如此。

基本上,git-svn 无法在不进行 rebase 的情况下从 SVN 同步回来。可能会消除此限制的新 git<->SVN 接口(interface)正在开发中,但尚未准备就绪。

恐怕如果你想与 SVN 存储库保持同步,你的场景现在如果不进行 rebase 将无法工作。

关于svn - git svn dcommit 没有 rebase ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4651402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com