Что означает эта ошибка svn2git? - PullRequest
30 голосов
/ 10 июня 2010

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

Found possible branch point: https://s.aaa.com/repo/trunk/project => https://s.aaa.com/repo/branches/project-beta1.0, 128
Use of uninitialized value in substitution (s///) at /opt/local/libexec/git-core/git-svn line 1728.
Use of uninitialized value in concatenation (.) or string at /opt/local/libexec/git-core/git-svn line 1728.
refs/remotes/trunk: 'https://s.aaa.com/repo' not found in ''

Running command: git branch -l --no-color
* master
Running command: git branch -r --no-color
  trunk
Running command: git checkout trunk
Note: checking out 'trunk'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at f4e6268... Changing svn repository in cap files
Running command: git branch -D master
Deleted branch master (was f4e6268).
Running command: git checkout -f -b master
Switched to a new branch 'master'
Running command: git gc
Counting objects: 450, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (368/368), done.
Writing objects: 100% (450/450), done.
Total 450 (delta 63), reused 450 (delta 63)

Ответы [ 5 ]

61 голосов
/ 14 декабря 2010

Мне пришлось открыть файл .git / config, удалить все ветви и записи тегов в разделе svn-remote и выполнить команду 'git svn clone', чтобы эта ошибка исчезла. По-видимому, если я запускаю эту команду несколько раз (обычно останавливаю и перезапускаю из ревизии), записи ветви / тега добавляются в файл конфигурации, а не используются повторно, что вызывает ошибку.

5 голосов
/ 24 июля 2013

Я следовал инструкциям SVN to Git , когда столкнулся с тем же сообщением об ошибке Произошла ошибка при запуске этой команды:

git svn clone file:///pathto/repo /pathto/new-git-repo –-no-metadata -A authors.txt -t tags -b branches -T trunk

После возникновения ошибки я отредактировал файл .git / config следующим образом:

tags = tags/*:refs/remotes/svn/tags/*
branches = branches/*:refs/remotes/svn/*

->

tags = tags/*:refs/remotes/svn/tags/*
branches = branches/*:refs/remotes/svn/branches/*

Т.е., я только что отформатировал строку "braches", чтобы она была похожа на строку "tags". Затем я снова запустил команду. Процесс произвел допустимое git-репо с удаленными ветками.

5 голосов
/ 06 апреля 2011

Чтобы исправить ваши проблемы, вы должны преобразовать импортированные удаленные ветви и теги в локальные.

Раздел от Скотта Чакона (PRO GIT): Оригинальная ссылка: http://progit.org/book/ch8-2.html:

To move the tags to be proper Git tags, run

$ cp -Rf .git/refs/remotes/tags/* .git/refs/tags/
$ rm -Rf .git/refs/remotes/tags

This takes the references that were remote branches that started with tag/ and makes them real (lightweight) tags.

Next, move the rest of the references under refs/remotes to be local branches:

$ cp -Rf .git/refs/remotes/* .git/refs/heads/
$ rm -Rf .git/refs/remotes

Это прекрасно сработало для меня.

4 голосов
/ 10 июня 2010

В вашем хранилище subversion нет стандартной структуры соединительных линий / тегов.Укажите альтернативные места для ветвления, используя опции --branch, --tag, --trunk.

2 голосов
/ 11 декабря 2013

Похоже, что svn2git неправильно передает конфигурацию ветки. У меня была стандартная раскладка, но произошла ошибка. Я исправил это, передав значения по умолчанию для макета снова:

$ svn2git http://repos --branches branches --tags tags --trunk trunk

Тогда все заработало как положено.

...