сбой авторизации git-svn fetch

#git #svn #git-svn

#git #svn #git-svn

Вопрос:

Я пытаюсь клонировать репозиторий svn с помощью git, но я получаю сбой авторизации на этапе выборки. В настоящее время я только пытаюсь получить основную часть проекта:

 $ git svn clone svn://some/repo --trunk=svn://some/repo/trunk/project/ --username afoglia .
Initialized empty Git repository in /home/afoglia/projects/new_repo/trunk.git/project/.git/
Using higher level of URL: svn://some/repo/trunk/project => svn://some/repo
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: File not found: revision 100, path '/trunk/project'
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
This may take a while on large repositories
Authorization failed: Authorization failed at /home/afoglia/.local/stow/git-1.7.7/libexec/git-core/git-svn line 3099
  

Я пробовал извлекать только самые последние версии, и это приводит к сбою с тем же сообщением.

git успешно обращается к репозиторию на первом шаге; я вижу, что счетчик ревизий увеличивается по мере приближения к первой ревизии с этим каталогом. Поэтому я не знаю, почему произошел сбой. Обратите внимание, что макет представляет собой несколько проектов в одном магистральном каталоге, и у меня есть разрешения только на чтение этого проекта и ниже.

Я незнаком с Perl, но строка 3099 — это исключение, если не указано другое сообщение, а строки «Ошибка авторизации» нигде нет в скрипте.

Кроме того, мне пришлось установить git под своей учетной записью, а также скомпилировать и установить svn, так что это может быть результатом отсутствия библиотеки perl. (Но я успешно клонировал незащищенный репозиторий svn, так что это не что-то очевидное.)

Ответ №1:

Во-первых, --trunk принимает subdir, а не абсолютный URL. Далее, вы должны предоставить --parent , чтобы получить только большую часть изменений. Попробуйте этот способ

 git svn clone --username afoglia --parent svn://some/repo --trunk=trunk/project/ project-git
  

Если это не сработает, попробуйте этот способ

 git svn clone --username afoglia --parent svn://some/repo/trunk/project/ project-git
  

Комментарии:

1. git svn clone не нравится опция «—parent». Unknown option: parent . Итак, я попытался выполнить git svn init (который работает), а затем git svn fetch --parent . Это завершается ошибкой fatal: ambiguous argument 'HEAD':... , что имеет смысл, потому что, когда ничего не извлекается, у git нет HEAD, из которого можно получить родительский элемент. Кроме того, я сначала попробовал trunk с помощью subdir trunk / project. Разницы не было. Я переключился на полный URL-адрес (который, как явно указано на справочной странице, поддерживается) в маловероятном случае, если причиной был двухуровневый субдир магистрали.

2. извините, попробуйте git clone -r HEAD вместо git clone --parent