diff --git a/plugin/fugitive.vim b/plugin/fugitive.vim index c9b01961a48304b15ba64175a3f2557500975364..0eba6436fe9510e282a9671142aaaf1bedf0cc00 100644 --- a/plugin/fugitive.vim +++ b/plugin/fugitive.vim @@ -506,9 +506,9 @@ function! s:buffer_path(...) dict abort let rev = matchstr(self.spec(),'^fugitive://.\{-\}//\zs.*') if rev != '' let rev = s:sub(rev,'\w*','') - elseif self.repo().bare() + elseif self.spec()[0 : len(self.repo().dir())] ==# self.repo().dir() . '/' let rev = '/.git'.self.spec()[strlen(self.repo().dir()) : -1] - else + elseif !self.repo().bare() && self.spec()[0 : len(self.repo().tree())] ==# self.repo().tree() . '/' let rev = self.spec()[strlen(self.repo().tree()) : -1] endif return s:sub(s:sub(rev,'.\zs/$',''),'^/',a:0 ? a:1 : '')