|
28 | 28 | " " Using a non-master branch
|
29 | 29 | " Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
|
30 | 30 | "
|
| 31 | +" " Using a tagged release; wildcard allowed (requires git 1.9.2 or above) |
| 32 | +" Plug 'fatih/vim-go', { 'tag': '*' } |
| 33 | +" |
31 | 34 | " " Plugin options
|
32 | 35 | " Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }
|
33 | 36 | "
|
@@ -966,8 +969,17 @@ function! s:update_finish()
|
966 | 969 | call s:log4(name, 'Checking out '.spec.commit)
|
967 | 970 | let out = s:checkout(spec)
|
968 | 971 | elseif has_key(spec, 'tag')
|
969 |
| - call s:log4(name, 'Checking out '.spec.tag) |
970 |
| - let out = s:system('git checkout -q '.s:esc(spec.tag).' 2>&1', spec.dir) |
| 972 | + let tag = spec.tag |
| 973 | + if tag =~ '\*' |
| 974 | + let tags = s:lines(s:system('git tag --list '.string(tag).' --sort -version:refname 2>&1', spec.dir)) |
| 975 | + if !v:shell_error && !empty(tags) |
| 976 | + let tag = tags[0] |
| 977 | + call s:log4(name, printf('Latest tag for %s -> %s', spec.tag, tag)) |
| 978 | + call append(3, '') |
| 979 | + endif |
| 980 | + endif |
| 981 | + call s:log4(name, 'Checking out '.tag) |
| 982 | + let out = s:system('git checkout -q '.s:esc(tag).' 2>&1', spec.dir) |
971 | 983 | else
|
972 | 984 | let branch = s:esc(get(spec, 'branch', 'master'))
|
973 | 985 | call s:log4(name, 'Merging origin/'.branch)
|
@@ -2227,4 +2239,3 @@ endif
|
2227 | 2239 |
|
2228 | 2240 | let &cpo = s:cpo_save
|
2229 | 2241 | unlet s:cpo_save
|
2230 |
| - |
|
0 commit comments