11

我曾经git cvsimport将我的 CVS 存储库导入到一个全新的 GIT 中。

不幸的是,在某些情况下,某些提交的报告顺序错误。

例如,我有一个文件的两个 CVS 版本,上午 11.39 的 rev1.1 和上午 11.42 的 rev1.2;在 GIT 中,我可以在上午 11.42 看到一个提交(内容等于 rev1.2),然后在上午 11.45 看到一个提交(内容等于 rev1.1)。

我知道 cvsimport 手册页中所述的已知问题

如果 cvs 存储库中提交的时间戳不够稳定,无法用于排序提交,更改可能会以错误的顺序显示。

但我不明白足够稳定是什么意思。

此外,如果有人可以为我提供解决此问题的方法,那就太好了。

非常感谢

盖尔西

4

1 回答 1

0

很容易欺骗 git 进入时间戳,因为它只检查本地时间,所以可能 cvs 将时间检查到标签设置的顺序中。

但解决方法是使用cherry-pick。这个命令几乎是从提交中复制粘贴,所以你可以简单checkout地从 rev1.1 给一个提交,然后使用cherry-pickrev1.2 之后丢失的提交。rebase -i比在rev1.2之后使用只是擦除/压缩重复的提交之后。与使用 rebase/cherry-pick 一样,提交的树将请求一个悲伤push -f的分支来修复所有内容。

于 2015-11-07T04:00:54.020 回答