我正在尝试将我们的代码从带有大约 1 GB 数据的 SVN 存储库(TortoiseSVN 1.9.3 64 位)迁移到带有 Git 存储库的 TFS 2015。我的计算机上有 Git(2.9.0.1),当我尝试使用此命令行时:
git svn clone https://server/directory/trunk
它创建了 .git 文件夹,但随后我有一个 perl.exe.stackdump 文件,其中包含以下问题
Exception: STATUS_ACCESS_VIOLATION at rip=00000000000
rax=0000000000000000 rbx=00000006010B9448 rcx=00000006010B9448
rdx=00000006010C1788 rsi=0000000000000011 rdi=0000000000000000
r8 =0000000000000000 r9 =00000006010E8F68 r10=0000000100000000
r11=000000049F2423C9 r12=00000000FFFFC200 r13=00000000FFFFC208
r14=00000006010B0498 r15=00000006010B0408
rbp=00000000FFFFC218 rsp=00000000FFFFC1A8
program=C:Program FilesGitusrbinperl.exe, pid 26220, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame Function Args
End of stack trace
我已经读到 Git 使用 .subversion/servers 文件进行身份验证,所以我想这不是问题所在吗?我只在Windows上工作。
原因很可能是由于大型提交的大小。我以前在使用 Cygwin git 时获取、克隆或变基时遇到过类似的问题,当更改集太大以至于 Git 和/或 Perl 内存不足时(当同事提交大型视频文件时,这并不好玩)。 关闭所有其他内存密集型进程会有很大帮助。FWIW,我还发现将 Cygwin 从 32 位升级到 64 位后,我遇到的问题更少了。
这似乎是 Msys Git 中的一个众所周知的错误,根据对错误报告的评论,您应该
尝试连续呼叫
git svn fetch
呼叫以继续
还建议使用 64 位版本的 Git for Windows。祝你好运。
我在 git 上使用旧版本多次遇到类似问题
尝试升级到最新版本(我使用的是 2.15 64 位),它对我来说效果很好。
原因是SVN存储库必须通过http/https代理访问。对于 Git-SVN for Windows,您必须在 $home/.Subversion/servers 中添加代理信息。(c:\Users\.subversion\servers),查找全局扇区和未通信的 http-proxy-host 和 http-proxy-port。在Windows上,Git-SVN代理设置与Git代理设置不同,这是我的问题。
我遇到了同样的问题 - 或者,至少看到了同样的症状。为我解决的是使用 http 而不是 https。
使用 https,错误甚至在下载任何内容之前就发生了。使用http,它立即工作,下载SVN存储库中的每个文件。
我运行的命令,按照这里的食谱:
git svn clone <SVN repo URL - with http> --prefix=svn/ --no-metadata --authors-file "authors-transform.txt" --stdlayout .
MINGW64(和visualsvn)上附加"最新"的git版本(2.39)。
就像 reowil 和 Tiger 的答案一样,我的解决方案是修复 http url 路径,使用内部机器名称和(好的)端口与外部映射。
git svn clone --username=francois --trunk=/ http://myserver:8080/svn/mywebsite/trunk/ i:/temp/mywebsite`