4

私はgitに問題があります。

基本的に、ここに私が持っているものがあります。git を介して svn リポジトリにアクセスします。これまで、python ファイルでは、すべてが正常に機能していました。

しかし最近、リポジトリにいくつかのpyd、dll、およびlibファイルも追加しました。最初の更新はうまくいきました。しかし、これらのファイルは変更されており、それ以来更新できません。これらのファイルは、svn リポジトリの TortoiseSvn を使用して Windows コンピューターから追加されました。

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 と同じ問題があり、ここで私の調査結果を共有したいと思いました (Google はいくつかのケースを見つけましたが、解決策はありません)。

リポジトリで「git svn rebase」を実行しようとすると (これは過去に何度も機能していました)、一定回数のコミット後に「致命的: 書き込みエラー: 無効な引数」で一貫して失敗しました。その後、同期は再び最初に戻ります。

これは、大規模な (ish) バイナリと利用可能なメモリ (4GB RAM と十分な空き HD スペースを備えた Win XP SP3 システム) に関連する Msysgit のバグだと思います。リモート システムは、CodePlex (https://dotnetnuke.svn.codeplex.com/svn) の DotNetNuke SVN リポジトリでした。

最初は、330KB の「CHM」ファイル (~212 番目のコミット、r52261) で窒息していました。アバスト AV や Google デスクトップなどを無効にし、レポ フォルダーにロックのあるプロセスが他にないことを確認した後でも、一貫してそうしました。再起動後 (ただし、Outlook、Dreamweaver などを開く)、約 15.3MB の DLL (約 416 回目のコミット、同じリビジョン) で一貫して繰り返し失敗していました。

最後に、もう一度再起動し、Avast、Carbonite、および Google デスクトップを無効にし、他のプログラムを実行しないと、同期は初めて機能しました。

これは、利用可能なメモリの問題であるという私の結論をしっかりと示しているようです。おそらく、リビジョンに大きなバイナリと多数のコミットが存在することに関連しています。「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 に答える