Как сделать изменения в кассе git cvsimport после некоторой даты? - PullRequest
4 голосов
/ 07 января 2012

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

I cvsimport вот так:

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

Можно ли выбрать коммиты после некоторой даты?

Ответы [ 2 ]

2 голосов
/ 09 августа 2012

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

git cvsimport -v -d <cvsroot> -p -d,'2012/01/01 00:00:00' <module>
2 голосов
/ 27 февраля 2012

Теоретически вы должны использовать опцию -p, равную git cvsimport, вместе с опцией -d, равной cvsps. Вот две соответствующие выдержки из страниц руководства:

git cvsimport:

-p

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

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

cvsps:

-d <дата1> -d <дата2> если указана только одна дата, показать ревизии новее, чем 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...