我希望有更多知識的人會回答,但這裏是我發現的。 我使用的是相同的工具,頂部的$ 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是 「最後如果($網址EQ $ GS-> full_url);」所以$ url或$ gs-> full_url是未定義的,這是程序不準備處理的一個條件。我懷疑存儲庫結構中的某些東西讓它感到困惑。在任何情況下,我們都可以假設沒有找到匹配的url,並退出循環。因此,如果我是你,我會試圖添加「最後除非(定義$ url & &定義$ gs-> full_url);」 3015之前,看看會發生什麼。它可能工作,可能不會。
實際上,調試程序首先要看看哪些是未定義的,並找出原因。作者可能有興趣修復它,特別是如果您可以發送存儲庫的副本。