Задача
Как создать поверхностную копию с помощью git-svn из репозитория Subversion, например, как ты тянешь только последние три ревизии?
Команда git clone
может получить последние n ревизий из репозитория Git, если вы используете опцию --depth
, т.е. вы получаете поверхностную копию репозитория. Пример:
git clone --depth 3 git://some/repo myshallowcopyrepo
Есть ли подобная опция для git-svn?
Мои открытия до сих пор
Пока что я нашел только параметр -rN
, где N
- это версия для извлечения. Пример:
git svn clone -rN svn://some/repo
Согласно документации есть возможность использовать -r$REVNUMBER:HEAD
. Я попробовал следующее, чтобы получить последние 3 ревизии, которые вернули сообщение об ошибке.
$ git svn clone --prefix=svn/ -s -rHEAD~3:HEAD http://some/svn/repo .
revision argument: HEAD~3:HEAD not understood by git-svn
Таким образом, я заменил HEAD~3
фактическим номером третьей, но последней ревизии 534. Это сработало, но для этого мне нужно сначала выяснить номер ревизии третьего, но последнего коммита.
$ git svn clone --prefix=svn/ -s -r534:HEAD http://some/svn/repo .
Документация
ГИТ-клон
ГИТ-SVN