当我运行git svn fetch时,有时会打印以下警告:
W:svn cherry-pick ignored (/path/in/svn:<svn revision number list>) missing 55 commit(s) (eg 9129b28e5397c41f0a527818edd344bf264359af)这个警告是关于什么的?
发布于 2012-02-25 04:54:19
当有人对Subversion进行“挑剔的合并”时,Subversion会将合并后的提交记录到所涉及的文件和文件夹的元数据中。
当您执行git svn fetch时,Git会看到合并元数据,并尝试将其解释为Git远程分支之间的合并。所有这条消息都意味着Git试图这样做,但失败了,所以它会将其记录为常规提交而不是合并。
这不是你需要担心的事情,除非你在Git获取Subversion提交的方式中发现了错误。
更详细地说:
假设您有一个具有两个分支A和B的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标记中记录元数据,记录此合并已经发生,您的下一个git svn fetch将看到此元数据,看到分支B已重新集成到分支A中,并在其历史记录中将相应的提交记录为合并。
如果您只想从分支B中的分支A中提交一次(比如r3添加了一个您需要的特性),但是您还不想重新集成整个分支,那么您可以使用Subversion命令,比如svn merge -c 3 ^/branches/B。同样,Subversion将记录合并元数据,Git将看到这一点,并尝试确定是否可以像上一个示例中那样记录分支合并。在本例中,它不能:分支A不包含类似分支B的r5的任何内容,这就是触发此警告的原因。
https://stackoverflow.com/questions/9429922
复制相似问题