4

我的 git 有问题。

基本上,这就是我所拥有的。我通过 git 访问一个 svn 存储库。到目前为止,在 python 文件上,一切正常。

但最近我还在存储库中添加了一些 pyd、dll 和 lib 文件。第一次更新很顺利。但是,这些文件已被修改,从那时起我无法更新。这些文件是从带有 TortoiseSvn 的 Windows 计算机添加到 svn 存储库中的。

如果我在 linux 上执行 git svn rebase,一切正常。

如果我使用 msysgit(以及 tortoisegit)在 windows 上执行 git svn rebase,我会遇到以下错误:致命:写入错误:无效参数

如果我使用 cygwin 在 Windows 上执行 git svn rebase,则会出现以下错误:在 /usr/lib/perl5/vendor_perl/5.10/Git.pm 第 916 行的 blob 之后没有找到换行符

我尝试了几个东西(autocrlf true/false,safecrlf true/false),添加带有以下行的 .gitattributes 文件 *.* -crlf -diff -merge 并且没有任何效果。

我有点卡在这里,所以欢迎任何建议。

提前致谢。

4

2 回答 2

3

与 2010 年 9 月 29 日的最新版本 Msysgit v1.7.2.3 有相同的问题,并想在这里分享我的发现(谷歌出现了几个案例,但没有解决方案)。

尝试在 repo 上执行“git svn rebase”(过去曾多次这样做)在一定数量的提交后始终以“致命:写入错误:无效参数”失败。然后同步将再次恢复到开始。

我相信这是 Msysgit 中与大型(ish)二进制文件和可用内存相关的错误(在具有 4GB RAM 和大量可用 HD 空间的 Win XP SP3 系统上)。远程系统是 CodePlex (https://dotnetnuke.svn.codeplex.com/svn) 上的 DotNetNuke SVN 存储库。

最初,它被一个 330KB 的“CHM”文件(~第 212 次提交,r52261)阻塞。即使在禁用 Avast AV、Google 桌面等并验证没有其他进程锁定 repo 文件夹之后,它也始终如一地这样做。重新启动后(但打开 Outlook、Dreamweaver 等),它在 ~15.3MB 的 DLL(~416 次提交,相同的修订版)上一直反复失败。

最后,在再次重新启动后,禁用 Avast、Carbonite 和 Google Desktop 并且不运行其他程序,同步第一次工作。

这似乎坚定地表明了我的结论,即这是一个可用内存问题,可能与修订版中存在较大的二进制文件和大量提交有关。请注意,我还尝试了“git fsck”、“git svn reset xx”和调整“packSizeLimit”/“usedeltabaseoffset”配置变量,但没有成功。

于 2010-09-29T21:12:49.047 回答
1

我发现在 Windows 上使用 Git 的最佳策略是告诉它不要对行尾做任何事情。

我不知道这是否会帮助您恢复当前的 git 存储库,但值得一试。

我设置:

[core]
    autocrlf = false
于 2010-02-20T18:55:46.817 回答