Svn2git: невозможно настроить информацию отслеживания
Я пытаюсь перенести проект SVN на git с помощью svn2git. При выполнении команды он выходит со следующей ошибкой:
Running command: git branch --track "0.0.9" "remotes/svn/0.0.9"
fatal: Cannot setup tracking information; starting point 'remotes/svn/0.0.9' is not a branch.
Начал с:
svn2git http://<host>/<project>
Я не могу найти решение для него, и похоже, что у многих пользователей такая же проблема.
Что я могу сделать для решения этой проблемы?
Ответы
Ответ 1
У меня была такая же проблема с использованием Debian Sid (версия "git" равна 1:1.8.3.2-1). Прежде чем я уже провалился на Debian Squeeze, используя пакет "git" (1:1.7.2.5-3).
Наконец, я закончил использование репозитория сжимания-backport (1:1.7.10.4-1 ~ bpo60 + 1), и теперь он работает.
Какую версию Git вы используете?
Ответ 2
это должно исправить:
Изменение этой строки https://github.com/nirvdrum/svn2git/blob/master/lib/svn2git/migration.rb#L319
от run_command("git branch --track \"#{branch}\" \"remotes/svn/#{branch}\"")
до run_command("git branch \"#{branch}\" \"remotes/svn/#{branch}\"")
должен исправить это.
По крайней мере, теперь он работает без меня.
вы можете найти файл migration.rb
в Windows под C:\Ruby200-x64\lib\ruby\gems\2.0.0\gems\svn2git-2.2.2\lib\svn2git
или что-то вроде этого
https://github.com/nirvdrum/svn2git/issues/132#issuecomment-31453436
Ответ 3
Я хочу добавить к этому быстрое и грязное решение без изменения кода!
Каждый раз, когда вы получаете ошибку, просто вручную измените ветку и продолжите команду svn2git
.
чтобы просмотреть рабочий процесс:
Запуск команды
svn2git ....
Получена ошибка
Running command: git branch --track "0.0.9" "remotes/svn/0.0.9"
fatal: Cannot setup tracking information; starting point 'remotes/svn/0.0.9' is not a branch.
Вручную изменить ветвь (скопируйте строку Running command:
и удалите --track
)
branch "0.0.9" "remotes/svn/0.0.9"
Продолжение с svn2git
svn2git ...
note ...
после svn2git
выше, независимо от вашей команды svn2git
Ответ 4
Если у вас небольшое количество ветвей и вы не хотите понижать класс git, вот способ обхода проблемы. Запустите "git branch -r", чтобы получить список ветвей. Затем запустите каждую ветвь (например, svn/next_branch):
$ git branch "next_branch" "remotes/svn/next_branch"
Единственное отличие заключается в том, что опция "--track" удалена.
Это было исправлено для этого Github Issue