Вопрос по git-svn, git – Почему команда «git svn fetch» застревает и ничего не делает?

32

EDIT: Workaround. Теперь мы понимаем проблему, вот решение: сделать

git svn fetch -r REVISION:HEAD

где REVISION - номер svn коммита создания ветки.

Я был счастлив, что некоторое время использовал git svn для работы над стволом моего проекта, но теперь мне нужно отслеживать и ветки.

Я пытался инициализировать новый репозиторий, чтобы сделать это с

git init
git svn init https://svnserver/svn/repository

Затем я редактирую локальный файл конфигурации, чтобы отразить структуру моего SVN-репозитория:

[svn-remote "svn"]
    url = https://svnserver/svn/repository
    fetch = path/to/trunk:refs/remotes/trunk
    branches = path/to/branches/*:refs/remotes/branches/*

Тогда я бегу

git svn fetch

И эта команда просто ничего не делает:

It does not terminates It does not write anything in the console output It does not use any CPU, nor create files

Я сдался через 10 минут

Я проверил, что репозиторий svn работает, потому чтоgit svn fetch отлично работает на моем репозитории git, где я отслеживаю только транк.

Это ошибка или я что-то здесь упускаю?

Большая экономия времени, спасибо! с -r это было почти мгновенно, даже с нашим репозиторием svn, имеющим десятки активных веток и длинную историю (более 20 000 коммитов). djKianoosh

Ваш Ответ

5   ответов
23

ммита.

Но пока он не получит этот коммит, вы можете убедиться, что команда работает правильно, проверив.git\svn\.metadata файл.

Проверьте редактирование, выполненное OP: если вы знаете номер редакции «первого соответствующего коммита», вы можете ускорить процесс.
Мне кажется, что процесс ничего не делает. Я запустил это на машине, где находится репозиторий SVN, но процессор даже не собирается около 5%. Это похоже на оператор сна, который длится 1 час в начале процесса.
И может потребоваться целая вечность, чтобы увидеть «первый соответствующий коммит» так что вам нужно набраться терпения и уйти и просто оставить это, пока не увидите что-нибудь ... Не скучайте и CTRL + C, как я! : D
1

убедитесь, что обновили с 2.20.1 до предыдущего (2.20.0), следующего (2.21.0) или любого другого. Упомянутая версия имеетисправление ошибок "git svn fetch" вешать, который был позже исправлен.

1

ISSUE : svn+ssh://svn.xxxxxxx.com/svnroot/strategy/products/mysoftware hangs on :

Initialized empty Git repository in [MyLocalRepositoryPath]

SOLUTION: Вставить

[email protected]

перед svn url

svn+ssh://[email protected]/svnroot/strategy/products/mysoftware

Кажется, работает на меня. В чем причина этого?
На всякий случай, этот совет работает для процессов, которые на самом делеstuck, как и в моем случае. Он может зависать часами, процессы почти зависают. Проблема, как указано в вопросе, заключается в том, что git svn не застревает, а тратит много времени, чтобы начать писать соответствующую информацию из-за слишком раннего запуска процесса извлечения.
3

--log-window-size=5000 параметр.

Если в репо есть большое количество коммитов, git-svn пройдет через них100 по умолчанию. Увеличение этого может значительно увеличить его скорость.

0

refs / remotes / git-svn, и оно работает для меня

Похожие вопросы