STATUS_ACCESS_VIOLATION 与 git svn 一起使用



我正在尝试将我们的代码从带有大约 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`

最新更新