git-svn clone fails unexpectedly

2019-01-25 14:14发布

I run the following:

git svn clone --stdlayout --no-metadata -A users.txt -r 3760:4662 svn://kumquat.geoplan.ufl.edu/Projects/S4-Geocoding S4-Geocoding-SVN.git

It begins running and runs fine for a while, then bombs:

...
        M       S4.Geocoding.Client/App.xaml.cs
        M       S4.Geocoding.Client/MainPage.xaml.cs
        M       S4.Geocoding.Client/CodingPage.xaml
        M       S4.Geocoding.Client/CodingPage.xaml.cs
r4163 = 498dad8ce3730390393fc13b183fdbbff7108e6b (refs/remotes/trunk)
        M       S4.Geocoding.Client/CodingPage.xaml.cs
r4164 = 728b706b27d60d91659c144c3fac98cdbd1b09b2 (refs/remotes/trunk)
Found possible branch point: svn://kumquat.geoplan.ufl.edu/Projects/S4-Geocoding/trunk => svn://kumquat.geoplan.ufl.edu/Projects/S4-Geocoding/branches/auto-advance-crash-report-viewer, 4160
Use of uninitialized value $u in substitution (s///) at /usr/libexec/git-core/git-svn line 1728.
Use of uninitialized value $u in concatenation (.) or string at /usr/libexec/git-core/git-svn line 1728.
refs/remotes/trunk: 'svn://kumquat.geoplan.ufl.edu' not found in ''

What could be going on? I don't know where to start to troubleshoot this.

标签: git git-svn
2条回答
我命由我不由天
2楼-- · 2019-01-25 14:40

As me_and suggests, this is probably a Git bug. After poking around the source code, it appeared that the problem was related to metadata. I was able to work around it by removing the --no-metadata flag.

查看更多
Deceive 欺骗
3楼-- · 2019-01-25 14:47

As illustrated here or here, passing a bad trunk (becuse of a non-standard svn structure) will cause this error.

Git 2.9 will be less verbose (will die quicker).
See commit 523a33c (07 May 2016) by Christian Couder (chriscool).
(Merged by Eric Wong -- ele828 -- in commit 523a33c, 08 May 2016)

Git/SVN: die when there is no commit metadata

When passing a bad --trunk option to git svn clone, like for example the same URL that we are cloning.

Let's fix that by just die()ing when we have an uninitialized value because we cannot get commit metadata from a ref.

That avoids all the additional error messages like:

Found possible branch point...
Use of uninitialized value $u in substitution (s///) at...
查看更多
登录 后发表回答