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

qrt*_*tt1 5 git cvs

我曾经使用git cvsimportcvs 服务器,并且工作正常。然而,一些非常老的项目有很多提交和大文件。它导致 cvsimport 花费很长时间检查所有提交并将它们转换为 git 格式。

cvsimport喜欢这个:

git cvsimport -v -a -d :pserver:qrtt1@localhost:/cvs cvsroot/my_module
Run Code Online (Sandbox Code Playgroud)

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

Bur*_*Ali 2

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

git cvsimport:

-p <cvsps 选项 >

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

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

CVSP:

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

不幸的是,当我使用它时,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
Run Code Online (Sandbox Code Playgroud)

不过,单独运行cvsps会接受日期,因此将其作为两步过程执行应该可行。

cvsps -d '2012/01/01 00:00:00' > patchset
git cvsimport -d <cvsroot> -P patchset <module>
Run Code Online (Sandbox Code Playgroud)

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