From 2723a1116f352dc3690b653bdb534f9481e71850 Mon Sep 17 00:00:00 2001
From: Tim Pope <code@tpope.net>
Date: Sat, 8 Dec 2012 16:47:28 -0500
Subject: [PATCH] Return '' from buffer.path() if outside work tree

In reference to #278.
---
 plugin/fugitive.vim | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/plugin/fugitive.vim b/plugin/fugitive.vim
index c9b01961..0eba6436 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 : '')
-- 
GitLab