使用git svn执行状态访问

2sbarzqh  于 2023-02-20  发布在  Git
关注(0)|答案(5)|浏览(126)

我尝试将代码从一个SVN存储库(TortoiseSVN 1.9.3 64位)迁移到一个带有Git存储库的TFS 2015。我的计算机(2.9.0.1)上有Git,当我尝试使用以下命令行时:

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 Files\Git\usr\bin\perl.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文件来认证,所以我想这不是问题所在。

huus2vyu

huus2vyu1#

原因很可能是由于一个大的提交的大小。我以前见过类似的问题,当使用Cygwingit时,当变更集太大,导致Git和/或Perl内存不足时,进行抓取、克隆或重定基(当同事提交大的视频文件时,这可不好玩)关闭所有其他内存密集型进程会有很大帮助。我还发现,在将Cygwin从32位升级到64位后,我遇到的问题更少了。
这似乎是一个well-known bug in Msys Git,根据错误报告上的评论,您应该
尝试连续呼叫git svn fetch以继续
建议使用64位版本的Git for Windows,祝你好运。

huus2vyu

huus2vyu2#

我在git上的旧版本中多次遇到类似的问题
尝试升级到最新版本(我使用2.15 64位),它对我来说工作得很好。

ddarikpa

ddarikpa3#

原因是SVN repo必须通过http/https代理才能访问。对于git-svn for windows,你必须在$home/.subversion/servers.(c:\Users.subversion\servers)中添加代理信息,找到全局扇区和未约定的http-代理-host和http-代理-port。在windows上,git-svn代理设置与git代理设置不同,这是我的问题。

pqwbnv8z

pqwbnv8z4#

我也遇到了同样的问题--或者,至少看到了同样的症状。为我解决这个问题的是使用http而不是https
使用https,错误甚至在下载任何东西之前就发生了。使用http,它马上就工作了,下载了SVN repo中的每个文件。
我运行的命令,遵循配方here

git svn clone <SVN repo URL - with http> --prefix=svn/ --no-metadata --authors-file "authors-transform.txt" --stdlayout .
flvtvl50

flvtvl505#

仍然在MINGW64(和visualsvn)上添加“最新”的git版本(2.39)。
与reowil和Tiger的回答一样,我的解决方案是修复httpurl路径,使用内部机器名和(好的)端口与外部Map。

git svn clone --username=francois --trunk=/ http://myserver:8080/svn/mywebsite/trunk/ i:/temp/mywebsite`

相关问题