Closed portown closed 9 years ago
ありがとうございます。 この問題なんですが、vim-fugitive と一緒に使った時にのみ再現するような気がします。一度お手元で agit.vim のみをインストールした状態で試していただけますか? その場合、別の対応を考えたほうがよいかもしれません。
仰る通り、vim-fugitiveなしで試したところ、再現しませんでした。 大変失礼しました……
vim-fugitiveの何が悪いのか、あいにく原因は掴めませんでしたが、 ひとまずこの修正は早計のようですので、closeしたいと考えています。
もしよろしければ、vim-fugitiveとの協調動作について継続調査したいのですが、 その場合、別途Issueを立てた方がよいでしょうか? (最初からIssueにすべきだったかもですが……)
そうですね。別 Issue でおねがいします。 僕の方でも調査して対応を考えてみます。
原因には一応心当たりがあって、agit.vim では .git ディレクトリのパスを探索する際に、vim-fugitive によって b:git_dir という変数がすでに存在する場合は探索をキャンセルしてその変数の中身を直接使う実装になっていて、そこのパスが間違っているからだと思われます。
遅くなりましたが、別途Issueを立てたので、こちらはcloseします。( #48 )
git clone時に--separate-git-dir=...オプションを使用して作業ツリーを分離したリポジトリをagit.vimで見た際、 未コミット差分が "fatal: This operation must be run in a work tree" とエラーになってしまっていたので、 修正してみました。
基本的に「core.worktreeが設定されていたら作業ツリーとして優先的に採用する」という処理を追加しただけですが、 毎回git configを呼ぶのも如何なものかと思い、dictに持たせるよう変更しました。