当前位置:  开发笔记 > 编程语言 > 正文

为什么git-cvsimport缺少一个主要的补丁集?

如何解决《为什么git-cvsimport缺少一个主要的补丁集?》经验,为你挑选了1个好方法。

这是我前一个问题的后续内容.

我可以查看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很难处理.

我必须再执行相同类型的复杂提交三次,而且由于cvsimport无法看到我的提交,我无法每次花费4个半小时从CVS重新导入一个全新的git存储库.

更重要的是,我被我每天运行的git-cvsimport(我打算放入cron,甚至写一个守护进程每五分钟左右运行一次)的事实吓坏了,我可能会错过将来的提交!我发现没有办法git现有的存储库来获取这些提交; 我只能在一个全新的存储库中运行git-cvsimport并永远等待,在我使用的时候失去了许多其他分支的使用.



1> skiphoppy..:

嗯,这可能是问题所在.我的git-cvsimport行看起来像这样:

git cvsimport -p x ...

-px应该将-x选项传递给cvsps,告诉它忽略它之前运行时所留下的缓存输出.我认为这样做的主要原因是,最后几个可能不完整的补丁集将被丢弃并在下次运行时完成.事实证明,它可能会解决更多问题,而这可能就是其中之一.

我学会了从这篇博客文章中以这种方式运行git cvsimport ,这是目前Google上针对"git cvs"的热门歌曲之一.它只是在上面的过程中,我试图通过cvsps输出的Perl调试器运行git-cvsimport,我必须检查并查看cvsps真正的参数.我了解到cvsps是这样运行的:

cvsps --norc x --cvs-direct ...

代替:

cvsps --norc -x --cvs-direct ...

我通过实验验证了我从cvsps获得了不同的输出,缺少一些补丁集(我不知道模式是什么),当传递x而不是-x时.感谢Murphy定律,cvsps似乎没有报告这是一个问题,而git-cvsimport从未见过它.

所以无论如何,git cvsimport需要像这样运行:

git cvsimport -p -x ...

我的此存储库的先前版本在此时已完全被清除,但我已能够将最后一个问题提交强制转换为它们(尽管缺少某些早期的提交).所以我再次经历了四个小时的导入过程,我希望这将是它!

最后一个提示:Windows上的git-cvsimport似乎根本不起作用.我获得的提交数量不到10%,尽管我确实找到了一棵类似于我们项目当前状态的树.它似乎缺乏几乎所有的历史......

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有