可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
Whilst doing git svn clone -s https://svn.example.com/repo/ I received the following output:
r3073 = a6132f3a937b632015e66d694250da9f606b8333 (refs/remotes/trunk) Found possible branch point: https://svn.example.com/repo/trunk => https://svn.example.com/repo/branches/v1.3, 3073 W: Refspec glob conflict (ref: refs/remotes/trunk): expected path: repo/branches/trunk real path: repo/trunk Continuing ahead with repo/trunk W: Refspec glob conflict (ref: refs/remotes/trunk): expected path: repo/branches/trunk real path: repo/trunk Continuing ahead with repo/trunk W: Refspec glob conflict (ref: refs/remotes/trunk): expected path: repo/branches/trunk real path: repo/trunk Continuing ahead with repo/trunk W: Refspec glob conflict (ref: refs/remotes/trunk): expected path: repo/branches/trunk real path: repo/trunk Continuing ahead with repo/trunk fatal: Not a valid object name refs/remotes/tags/Sync Controllers cat-file commit refs/remotes/tags/Sync Controllers: command returned error: 128
Running git branch -a gives:
remotes/tags/Sync%20Controllers remotes/tags/v1.1 remotes/trunk remotes/v1.2
I think the problem is that "remotes/tags/Sync Controllers" != "remotes/tags/Sync%20Controllers".
回答1:
The tag on SVN has a space in it, but the tag in git had this space converted to %20 (URL encoded). To solve it just manually add a new tag with the verbatim name:
cd .git/refs/remotes/tags/ mv Sync%20Controllers Sync\ Controllers
Then run the git svn clone command again.
(Normally you'd do this with git tag OLDTAG NEWTAG but git was not allowing me to define a tag with a space in. The tag files are simply text files containing the hash of the relevant commit.)
回答2:
You may use git-svn server-side alternative, SubGit in order to avoid many of git-svn translation problems.
I'm a SubGit developer and could say that we worked a lot to resolve character translation issues like the one above; in this particular case tag would be translated to a refs/tags/Sync+Controllers tag.
Note also, that git-svn has translated Subversion tag as a branch instead of a tag.
回答3:
I ran into this issue today, and considered this branch which contains a pace in it is not important, i just run
git branch -r -d partialPayment%202.4
And re-run git svn fetch It skipped current branch and continue grabbing the next one.
回答4:
I believe the problem with spaces is fixed in Git >= 1.8.0 (See: #786942).
So you should upgrade it.
I've tested it and it seems to work in the recent version of git.
See GitHub Home page: https://github.com/git/git