当我跑步时git svn fetch
它有时会打印以下警告:
W:svn cherry-pick ignored (/path/in/svn:<svn revision number list>) missing 55 commit(s) (eg 9129b28e5397c41f0a527818edd344bf264359af)
这个警告是关于什么的?
当有人使用 Subversion 进行“择优合并”时,Subversion 会记录合并到所涉及文件和文件夹的元数据中的提交。
当你做一个git svn fetch
,Git 看到合并元数据,并尝试将其解释为 Git 远程分支之间的合并。所有这些消息都意味着 Git 尝试这样做,但失败了,因此它会将其记录为常规提交而不是合并。
这不是您需要担心的事情,除非您发现 Git 获取 Subversion 提交的方式存在错误。
更详细地说:
假设您有一个包含两个分支的 Subversion 存储库A
and B
,以及匹配的 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
标签记录了这次合并已经发生,以及你的下一个合并git svn fetch
将看到这个元数据,看到那个分支B
已重新并入分行A
,并将相应的提交记录在其历史记录中作为合并。
如果您只想从分支进行一次提交B
在分行A
(假设 r3 添加了您需要的功能),但您还不想重新集成整个分支,您可以使用 Subversion 命令,例如svn merge -c 3 ^/branches/B
。同样,Subversion 会记录合并元数据,Git 会看到这一点并尝试确定它是否可以像前面的示例一样记录分支合并。在这种情况下它不能:分支A
不包含任何类似分支的内容B
的r5。这就是触发此警告的原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)