git svn clone: ​​использование неинициализированного значения в строке eq в строке% git-core% / git-svn 3015 - PullRequest
1 голос
/ 12 октября 2011

Я использую msysgit в Windows XP для клонирования репозитория SVN.После долгого ожидания я получил несколько ошибок, и клон не смог продолжить работу.Он говорит, что: Использование неинициализированного значения в строке eq в строке 3015. git-core / git-svn. Я нашел в этом файле код:

last if ($ url eq $ gs->full_url);

Я не знаю, как решить эту проблему.Git создал здесь много веток, каждая добавляет -, например,

refs/remotes/2.0@3044refs/remotes/2.0@3044-refs/remotes/2.0@3044--refs/remotes/2.0@3044---refs/remotes/2.0@3044----

и т. д.

Не могли бы вы рассказать мне, как решить эту проблему?Спасибо!

1 Ответ

0 голосов
/ 12 октября 2011

Я надеялся, что кто-то с большим знанием ответит, но вот что я нашел. Я использую тот же инструмент, моя верхняя $ VERSION - 1.7.6.msysgit.0.

Вокруг строки 3015 я вижу этот кусок кода:

while (1) {
    # It is possible to tag two different subdirectories at
    # the same revision.  If the url for an existing ref
    # does not match, we must either find a ref with a
    # matching url or create a new ref by growing a tail.
    $gs = Git::SVN->init($u, $p, $repo_id, $ref_id, 1);
    my (undef, $max_commit) = $gs->rev_map_max(1);
    last if (!$max_commit);
    my ($url) = ::cmt_metadata($max_commit);
    last if ($url eq $gs->full_url);
    $ref_id .= '-';
}
print STDERR "Initializing parent: $ref_id\n" unless $::_q > 1;

Строка 3015 является "последним, если ($ url eq $ gs-> full_url);" поэтому $ url или $ gs-> full_url не определены, условие, которое программа не готова обработать. Я подозреваю, что что-то в структуре хранилища запутало это. В любом случае, мы можем предположить, что соответствующий URL не был найден, и выйти из цикла. Так что на вашем месте я бы попытался добавить «последний, если (определено $ url && define $ gs-> full_url);» до 3015 и посмотрим что получится. Это может сработать, а может и нет.

На самом деле отладка программы началась бы с определения неопределенного и выяснения причины. Автору может быть интересно исправить это, особенно если вы можете отправить копию хранилища.

...