2012-01-07 2 views
4

Я использую git cvsimport для работы с сервером cvs, и он отлично работает. Однако некоторые очень старые проекты имеют много коммитов и больших файлов. Это заставляет cvsimport тратить много времени на проверку всех коммитов и преобразование их в формат git.Как сделать git cvsimport checkout изменения после определенной даты?

Я cvsimport так:

git cvsimport -v -a -d :pserver:[email protected]:/cvs cvsroot/my_module 

Можно выбрать фиксации после некоторого времени?

ответ

2

В теории вы должны быть в состоянии использовать -p вариант git cvsimport в сочетании с опцией -dcvsps. Вот два соответствующих выписок из искусственных страниц:

мерзавец cvsimport:

< -p опции-для-cvsps>

Дополнительные опции для cvsps. Параметры -u и -A неявные и не должны использоваться здесь.

Если вам нужно передать несколько вариантов, разделите их запятой.

cvsps:

< -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 

Запуск cvsps сам по себе принимает дату, хотя, таким образом это как два этапа должны работать.

cvsps -d '2012/01/01 00:00:00' > patchset 
git cvsimport -d <cvsroot> -P patchset <module> 

Вы можете изучить вывод cvsps, чтобы подтвердить, что он имеет только изменения после указанной вами даты, перед запуском длительной cvsimport команды.

+0

Это точно проверка изменений после даты. Тем не менее, никакой снимок перед датой. : D – qrtt1

+0

В любом случае, это полезная информация. Я могу проверить моментальный снимок по дате, а затем применить cvsimport. Большое спасибо. – qrtt1

2

Я думаю, вы должны разделите cvsps аргументы запятой:

git cvsimport -v -d <cvsroot> -p -d,'2012/01/01 00:00:00' <module> 
Смежные вопросы