agit.vim icon indicating copy to clipboard operation
agit.vim copied to clipboard

vim-fugitiveを入れた状態でseparate-git-dirなリポジトリの未コミット差分が見えない

Open portown opened this issue 10 years ago • 4 comments

git clone時に--separate-git-dir=...オプションを使用して作業ツリーを分離したリポジトリをagit.vimで見た際、 未コミット差分が "fatal: This operation must be run in a work tree" とエラーになります。

agit.vimの他にvim-fugitiveが入っていると現象が発生し、 agit.vim単独では発生しません。

portown avatar May 28 '15 09:05 portown

リポジトリパスの取得方法にfugitive.vimの有無で差異があるようです。

以下のような状況を仮定します。 リポジトリ:/foo/repos.git/ 作業ツリー:/bar/work/

このとき、リポジトリの場所が以下のように判定されます。 fugitive.vimなし:/bar/work/.git/ (誤ったリポジトリパス) fugitive.vimあり:/foo/repos.git/ (正しいリポジトリパス)

未コミット差分を見る際、「作業ツリー=リポジトリの親ディレクトリ」としているので、 作業ツリーの場所が以下のようになります。 fugitive.vimなし:/bar/work/ (正しい作業ツリールートパス) fugitive.vimあり:/foo/ (誤った作業ツリールートパス)

fugitive.vimありの場合、最終的に取得できる作業ツリーの場所が誤っているため、 未コミット差分が見えなくなっているようです。

リポジトリの場所、作業ツリーの場所、 それぞれの取得方法の修正が必要かと思います。

portown avatar Jul 02 '15 12:07 portown

報告ありがとうございます&対応遅くなりすみません。 ひとまず教えていただいた情報を元に修正を試みます。

cohama avatar Jul 08 '15 13:07 cohama

ちなみにですが、Git のバージョンを教えていただいても良いでしょうか?

cohama avatar Jul 08 '15 13:07 cohama

Mac OS XのHomeBrewで入れたGit 2.4.5です。

portown avatar Jul 10 '15 02:07 portown