gpt4 book ai didi

git svn cherry pick 忽略警告

转载 作者:IT王子 更新时间:2023-10-29 00:58:10 24 4
gpt4 key购买 nike

当我运行 git svn fetch 时,它有时会打印以下警告:

W:svn cherry-pick ignored (/path/in/svn:<svn revision number list>) missing 55 commit(s) (eg 9129b28e5397c41f0a527818edd344bf264359af)

这个警告是关于什么的?

最佳答案

当有人使用 Subversion 进行“择优 merge ”时,Subversion 会记录 merge 到相关文件和文件夹的元数据中的提交。

当您执行 git svn fetch 时,Git 会看到该 merge 元数据,并尝试将其解释为 Git 远程分支之间的 merge 。所有这条消息都意味着 Git 尝试这样做,但失败了,因此它将把它记录为常规提交而不是 merge 。

这不是您需要担心的事情,除非您看到 Git 如何获取 Subversion 提交的错误。

更详细:

假设您有一个包含两个分支 AB 的 Subversion 存储库,以及一个匹配的 Git svn 存储库:

A B   

* r6
| * r5
* | r4
| * r3
|/
* r2
* r1

如果您要将分支 B 重新集成到分支 A 中,您将在分支 A 工作副本中使用命令,例如 svn merge -r 3:HEAD ^/branches/B 或者只是 svn merge --reintegrate ^/branches/B。 Subversion 会在 svn:mergeinfo 标签中记录元数据,记录这次 merge 已经发生,你的下一个 git svn fetch 会看到这个元数据,看到那个分支 B 被重新整合到分支 A 中,并将相应的提交记录在其历史记录中作为 merge 。

如果您只想从分支 B 到分支 A 中进行一次提交(假设 r3 添加了您需要的功能),但您不想重新集成整个branch 之前,你应该使用像 svn merge -c 3 ^/branches/B 这样的 Subversion 命令。同样,Subversion 会记录 merge 元数据,Git 会看到这一点并尝试确定它是否可以像前面的示例那样记录分支 merge 。在这种情况下它不能:分支 A 不包含分支 B 的 r5 之类的任何内容。这就是触发此警告的原因。

关于git svn cherry pick 忽略警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9429922/

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