gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 13:18:25 25 4
gpt4 key购买 nike

这是 a previous question of mine 的后续。

我可以查看 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 来说是一个 snap,但是当真正的后端是 CVS 时,git 很难处理。

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

更重要的是,我每天运行 git-cvsimport(我打算将其放入 cron,或者甚至编写一个守护进程以每五分钟左右运行一次)可能 错过 future 的 promise !我发现没有办法 git 一个现有的存储库来获取这些提交;我只能在一个全新的存储库中运行 git-cvsimport 并永远等待,当我在运行它时,我的许多其他分支都无法使用。

最佳答案

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

git cvsimport -p x ...

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

我从 this blog entry 学会了以这种方式运行 git cvsimport ,这是目前谷歌上“git cvs”的最高点击率之一。只有在上面的过程中,我试图通过 Perl 调试器在 cvsps 的输出上运行 git-cvsimport,我才不得不检查并查看哪些参数真正用于 cvsps。我了解到 cvsps 是这样运行的:

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

代替:

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

我通过实验验证了当传递 x 而不是 -x 时,我从 cvsps 得到了不同的输出,缺少一些补丁集(我不知道模式是什么)。多亏了墨菲定律,cvsps 似乎没有报告这是一个问题,而 git-cvsimport 从来没有看到它。

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

git cvsimport -p -x ...

我以前版本的这个存储库在这一点上已经完全清理干净了,但是我已经能够强制将最后一个问题提交到它们中(尽管一些早期的提交丢失了)。所以我又经历了一次四小时的导入过程,我希望就这样!

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

关于git - 为什么 git-cvsimport 缺少一个主要的补丁集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/702980/

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