如何在某个日期之后进行git cvsimport checkout更改?

时间:2012-01-07 17:55:52

标签: git cvs

我正在使用git cvsimport来使用cvs服务器,它运行正常。 但是,一些非常古老的项目有许多提交和大文件。它导致cvsimport花费很长时间检查所有提交并将它们转换为git格式。

cvsimport喜欢这样:

git cvsimport -v -a -d :pserver:qrtt1@localhost:/cvs cvsroot/my_module

是否可以在某个日期之后选择提交?

2 个答案:

答案 0 :(得分:2)

理论上,您应该能够将-p的{​​{1}}选项与git cvsimport的{​​{1}}选项结合使用。以下是手册页中的两个相关摘录:

git cvsimport:

  

-p< options-for-cvsps>

     

cvsps的其他选项。选项-u和-A是隐式的,不应在此处使用。

     

如果您需要传递多个选项,请用逗号分隔。

cvsps:

  

-d< date1> -d< date2>         如果只指定了一个日期,则显示比date1更新的版本。如果指定了两个日期,则显示两个日期之间的修订。

不幸的是,当我使用它时,cvsps抱怨日期:

-d

运行cvsps本身会接受日期,因此执行此操作作为两步过程应该有效。

$ git cvsimport -v -d <cvsroot> -p "-d '2012/01/01 00:00:00'" <module>
Running cvsps...

bad usage: invalid argument -d '2012/01/01 00:00:00'

Usage: [...]

git cvsimport: fatal: cvsps reported error

在运行冗长的cvsps命令之前,您可以检查cvsps的输出以确认它仅在您指定的日期之后发生了更改。

答案 1 :(得分:2)

我猜你必须用逗号分隔你的cvsps参数:

git cvsimport -v -d <cvsroot> -p -d,'2012/01/01 00:00:00' <module>