Я пытаюсь использовать Git в качестве интерфейса к репозиторию SVN, чтобы иметь возможность использовать такие приятные функции Git, как простое ветвление, сохранение и т. Д.
Проблема в том, что репозиторий SVN довольно большой (8000 оборотов) и содержит множество веток и тегов (старых и новых).
Это макет, близкий к стандартному, с конфигом, содержащим директивы fetch, branch и tags.
Поскольку самая старая ветвь и тег относятся к ревизии 10, это означает, что каждый svn fetch
читает всю историю репозитория от ревизии 10 и выше, что может занять часы при медленном соединении.
Если я только отслеживаю транк, то все нормально, но я все еще хочу, чтобы git знал о новых ветвях и тегах.
Я обычно смотрю на git log -1
на ветке, в которой я нахожусь, и получаю ревизию SVN из комментария, поэтому я могу сделать git svn fetch -r7915:HEAD
или подобное. Я думаю, это то, что делает git svn fetch --parent
. Но зачем мне это делать?
Я работаю в Windows и использую TortoiseGit, в котором довольно неплохо поддерживается git-svn
, но, поскольку TortoiseGit работает только git svn fetch
, я немного застрял.
Я что-то не так делаю? Я ожидаю, что svn fetch
будет быстрой операцией после завершения первого svn clone -s
.