Я пытаюсь использовать Git в качестве интерфейса к репозиторию SVN, чтобы иметь возможность использовать Git приятные функции, такие как простое разветвление, зашивание и т.д.
Проблема заключается в том, что репозиторий SVN довольно велик (8 000 оборотов) и содержит множество ветвей и тегов (как старых, так и новых).
Это почти стандартная компоновка с конфигурацией, содержащей директивы выборки, ветвей и тегов.
Поскольку самая старая ветка и тег относится к редакции 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
будет завершен.