在最新版本的 git 中,配置svn.pushmergeinfo
被介绍:
配置键:svn.pushmergeinfo
此选项将导致 git-svn 在可能的情况下尝试自动填充 SVN 存储库中的 svn:mergeinfo 属性。目前,这只能在提交非快进合并时完成,其中除第一个父级之外的所有父级都已被推送到 SVN 中。
我们使用它来建立一个混合环境,其中一些开发人员使用 SVN,一些开发人员使用 Git-SVN。当在 Git 中分支和合并 SVN 分支时,这非常有用,然后git svn dcommit
- 回到 SVN,它实际上在几乎所有情况下都正确填充了 mergeinfo 属性。但是,在特定情况下,它会错误地执行此操作。
这种情况主要发生在将主干合并到该分支(实际上相当于 SVN 重新集成)之后,将分支合并到主干(主干)时。
从主干到分支的合并会为该分支上的主干添加一条 mergeinfo 行(根据需要),但是从分支回到主干的重新集成合并会将该行复制到主干的 mergeinfo 中,从而有效地在主干的 mergeinfo 属性中创建自引用行指向它自己。据我所知,这种自我引用永远不应该发生,并且在单独使用 SVN 时也不会发生。所以,我认为这是一个 git-svn 错误(我已经报告过)here)。这反过来会产生问题,影响其他 SVN 用户并损坏未来提交的合并信息。
我正在寻找的是一种解决方法:我如何轻松地告诉 git 不要为要合并的分支复制 mergeinfo 行,或者如何告诉 SVN 在提交时删除这些自引用(或任何其他不会导致自引用 mergeinfo 行的解决方案)但确实保留了从 git 自动创建 svn:mergeinfo 的其他品质)。
(为了澄清,我not寻找人们向我引用 git 手册或告诉我“与 Git-SVN 合并是危险的且不受支持”。仅当您可以帮助解决问题或提出替代工作流程时,才请回答。指向相关 git 代码的指针也会很有帮助,因为它们可能允许我创建一个补丁来解决这个问题。谢谢!)
只是一个更新。
看起来你创建了一个补丁。
http://lists-archives.com/git/765571-git-svn-dcommit-avoid-self-referential-mergeinfo-lines-when-svn-pushmergeinfo-is-configured.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)