11

私はWindowsを使用しているときにコードを管理するためにfugitive.vimと一緒にgitを使用してきました。しかし、私は問題に遭遇しました。ドキュメントによると、:GDiffコマンドはdiffウィンドウであり、ファイルの一部のみをステージングできるようにする必要があります。ただし、変更を加えたファイルでコマンドを発行すると、次のエラーメッセージが表示されます。 代替テキスト

これはWindowsの問題ですか?vim?逃亡者?msysgit?ファイルのアクセス許可?誰か知ってる?

4

4 に答える 4

14

私は同じ問題を抱えていました-これが私がそれを修正した方法です。

デフォルトでは、Vim は元のファイルの横にスワップ ファイルを保存しようとします。Fugitive は実際のファイル パスに対応しないバッファを作成するため、Vim はスワップ ファイルを作成しようとすると barfs を実行します。解決策は、Vim に書き込み可能なパスがあることを確認することです。

これを修正した方法は次のとおりです。

if has("win32") || has("win64")
   set directory=$TMP
else
   set directory=~/tmp
end

GitHub の元の問題は次のとおりです: https://github.com/tpope/vim-fugitive/issues/9

編集:

以下で指摘するように、おそらく次のようなものを使用する方が良いでしょう:

set directory+=,~/tmp,$TMP

Vim は、使用できる最初のパスを使用する必要があります。

于 2011-05-01T05:51:13.833 に答える
2
于 2011-05-07T08:08:26.887 に答える
1

ところで、私が:gdiff unsaved fileを試みたときに私が得たのと同じエラー-私がそれを保存したとき(:w)それは動作します!

于 2011-01-09T13:40:44.803 に答える
1

これは、私の SO answer で言及されている msysgitの問題 428 に関連している可能性があります。

以前の回答で説明したようにパッチを適用してみてcmd/git.cmd、これが役立つかどうかを確認してください。

それを除いて、2つのオプションが残っています:

  • ロックの問題 (ファイルがプロセスによってロックされている):プロセス モニタープロセス エクスプローラーなどのユーティリティを使用すると、問題があるかどうか (およびそのスワップ ファイルに正確にどのハンドルがあるか) を確認できます。
  • またはGitの問題。次に、msysgit の net-installer をインストールすることをお勧めします。これにより、Windows に最新バージョンの Git がビルドされます。次に、その更新されたバージョンで問題が解決しないかどうかを試してみることができます.
    注: 3 番目のオプションは、Git をダウングレードして、そのツールとのリンクを除外することです。
于 2010-05-28T20:51:17.257 に答える