5

MacでOSXLionにアップグレードしたところ、gitリポジトリで奇妙な問題が発生しました。.vimファイルをバージョン管理下に置き、いくつかのプラグインをgitサブモジュールとして構成しています。アップグレード後git status、.vimディレクトリにコマンドを実行すると、次のようになります。

fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed

誰かが私の問題が何であるか知っていますか?上記のエラーメッセージをGoogleとSOで検索しましたが、答えが見つかりませんでした。また、gitが非常に遅いように見えることにも気づきました。また、他のgitリポジトリには他に問題はありません(速度の問題が予想されます)。そのため、この問題はLionに関連していないと思います。.vimリポジトリを修正する方法について誰か提案がありますか?助けてくれてありがとう。

drizzdによって要求されたトレース出力の一部を次に示します。

setup: worktree: /Users/sbrown/.vim/bundle/supertab  
setup: cwd: /Users/sbrown/.vim/bundle/supertab  
setup: prefix: (null)  
trace: built-in: git 'status' '--porcelain'  
trace: run_command: 'status' '--porcelain'  
trace: exec: 'git' 'status' '--porcelain'  
setup: git_dir: .git  
setup: worktree: /Users/sbrown/.vim/bundle/surround  
setup: cwd: /Users/sbrown/.vim/bundle/surround  
setup: prefix: (null)  
trace: built-in: git 'status' '--porcelain'  
trace: run_command: 'status' '--porcelain'  
trace: exec: 'git' 'status' '--porcelain'  
setup: git_dir: .git  
setup: worktree: /Users/sbrown/.vim/bundle/tasklist  
setup: cwd: /Users/sbrown/.vim/bundle/tasklist  
setup: prefix: (null)  
trace: built-in: git 'status' '--porcelain'  
trace: run_command: 'status' '--porcelain'  
trace: exec: 'git' 'status' '--porcelain'  
setup: git_dir: .git  
setup: worktree: /Users/sbrown/.vim  
setup: cwd: /Users/sbrown/.vim  
setup: prefix: bundle/vim-colors-solarized/  
trace: built-in: git 'status' '--porcelain'  
trace: run_command: 'status' '--porcelain'  
trace: exec: 'git' 'status' '--porcelain'  
4

3 に答える 3

3

今後の参考のために、問題を修正できる唯一の方法は、すべてのサブモジュールを削除してから再インストールすることでした。

于 2011-09-07T11:27:16.477 に答える
1

それが他の誰かを助ける場合に備えて、私はちょうど同じ問題に遭遇git initし、プロジェクトルートで実行するとそれが修正されたことがわかりました。

于 2012-01-06T23:46:00.327 に答える
0

git-project (またはサブモジュールがある場合は少なくとも 1 つ) が破損しました。これは、フォルダ内のファイルの一部.gitが破損しているか見つからないことを意味します。

git-repo を修正

ジョーダンが言ったように:あなたのルートに行き、実行してくださいgit init。その後、もう一度git statusやり直してください。

サブモジュールを修正

これが機能しない場合は、サブモジュール フォルダーに移動して、もう一度試してくださいgit init。root に戻って実行しますgit status

なぜ壊れたのですか?

1 つの答えは、アクセス許可に問題があるということです。作業コピーで複数のユーザーと作業している可能性がありますか?

別の答えは、 OwnCloudDropboxGoogle Drive、または私の場合はBitTorrent Syncのような同期ソフトウェアのようなものかもしれません。私の作業用コピーは、職場と自宅のコンピューター間で同期される sync-folder にあります。これにより、権限に関するいくつかの問題が発生します。

それが役に立てば幸い。

于 2014-04-06T08:02:10.473 に答える