我可以查看cvsps的输出(保存在我的~/.cvsps目录中),并查看一个重要且复杂提交的补丁集。但是,当我执行cvsimport更新现有的git存储库时,此提交不会显示出来。我知道git-cvsimport将忽略比10分钟更新的补丁集,以避免导入不完整的CVS提交。我认为我也听说过它会跳过无法识别相关分支的补丁集。还有哪些原因可能导致git-cvsimport忽略我的提交?我该如何调试?
这是一小部分cvsps输出:
patchset: 50064
date: 1238445635
author: skiphoppy
tag:
tag_flags: 0
branch: HEAD
branch_add: 1
descr:
My log message
-=-END CVSPS DESCR-=-
members:
file:ordinaryChangedFile; pre_rev:1.44; post_rev:1.45; dead:0; branch_point:0
file:newFileRenamedAndModifiedFromOldFile; pre_rev:INITIAL; post_rev:1.1; dead:0; branch_point:0
file:deletedFileGoneBecauseRenamed; pre_rev:1.2; post_rev:1.3; dead:1; branch_point:0
...
那个branch_add:1行与此有关吗?整个代码库中只有9个这样的提交;其他50090个提交都是branch_add:0。除此之外,我不知道从cvsps或git-cvsimport的角度来看有什么区别。该提交很复杂,涉及重命名多个文件和进行相关内容修改。对于CVS来说肯定很困难。当然,对于Git来说是小菜一碟,但是当真正的后端是CVS时,Git很难处理。
我还要执行三次相同类型的复杂提交,我不能每次都花4个半小时从CVS重新导入全新的Git存储库,因为cvsimport无法查看我的提交。
更重要的是,我担心我的每日运行git-cvsimport(我打算将其放入cron,甚至编写守护程序每隔五分钟运行一次)可能会错过未来的提交!我找不到让现有存储库捕获这些提交的方法;我只能在全新存储库中运行git-cvsimport并永远等待,同时失去使用许多其他分支的机会。