mirror of
https://github.com/tpope/vim-fugitive.git
synced 2025-11-08 11:33:47 -05:00
DRY up refs/ paths
This commit is contained in:
@@ -299,6 +299,7 @@ function! s:repo_bare() dict abort
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:repo_translate(spec) dict abort
|
function! s:repo_translate(spec) dict abort
|
||||||
|
let refs = self.dir('refs/')
|
||||||
if a:spec ==# '.' || a:spec ==# '/.'
|
if a:spec ==# '.' || a:spec ==# '/.'
|
||||||
return self.bare() ? self.dir() : self.tree()
|
return self.bare() ? self.dir() : self.tree()
|
||||||
elseif a:spec =~# '^/\=\.git$' && self.bare()
|
elseif a:spec =~# '^/\=\.git$' && self.bare()
|
||||||
@@ -322,18 +323,18 @@ function! s:repo_translate(spec) dict abort
|
|||||||
return 'fugitive://'.self.dir().'//0/'.a:spec[1:-1]
|
return 'fugitive://'.self.dir().'//0/'.a:spec[1:-1]
|
||||||
elseif a:spec ==# '@'
|
elseif a:spec ==# '@'
|
||||||
return self.dir('HEAD')
|
return self.dir('HEAD')
|
||||||
elseif a:spec =~# 'HEAD\|^refs/' && a:spec !~ ':' && filereadable(self.dir(a:spec))
|
elseif a:spec =~# 'HEAD\|^refs/' && a:spec !~ ':' && filereadable(refs . '../' . a:spec)
|
||||||
return self.dir(a:spec)
|
return simplify(refs . '../' . a:spec)
|
||||||
elseif filereadable(self.dir('refs/'.a:spec))
|
elseif filereadable(refs.a:spec)
|
||||||
return self.dir('refs/'.a:spec)
|
return refs.a:spec
|
||||||
elseif filereadable(self.dir('refs/tags/'.a:spec))
|
elseif filereadable(refs.'tags/'.a:spec)
|
||||||
return self.dir('refs/tags/'.a:spec)
|
return refs.'tags/'.a:spec
|
||||||
elseif filereadable(self.dir('refs/heads/'.a:spec))
|
elseif filereadable(refs.'heads/'.a:spec)
|
||||||
return self.dir('refs/heads/'.a:spec)
|
return refs.'heads/'.a:spec
|
||||||
elseif filereadable(self.dir('refs/remotes/'.a:spec))
|
elseif filereadable(refs.'remotes/'.a:spec)
|
||||||
return self.dir('refs/remotes/'.a:spec)
|
return refs.'remotes/'.a:spec
|
||||||
elseif filereadable(self.dir('refs/remotes/'.a:spec.'/HEAD'))
|
elseif filereadable(refs.'remotes/'.a:spec.'/HEAD')
|
||||||
return self.dir('refs/remotes/'.a:spec,'/HEAD')
|
return refs.'remotes/'.a:spec,'/HEAD'
|
||||||
else
|
else
|
||||||
try
|
try
|
||||||
let ref = self.rev_parse(matchstr(a:spec,'[^:]*'))
|
let ref = self.rev_parse(matchstr(a:spec,'[^:]*'))
|
||||||
|
|||||||
Reference in New Issue
Block a user