Browse Source

Merge branch 'v' into master_v

Conflicts:
	autoload/vundle/config.vim
	autoload/vundle/installer.vim
v
gmarik 14 years ago
parent
commit
b4a8add013
2 changed files with 41 additions and 10 deletions
  1. +15
    -9
      autoload/vundle/config.vim
  2. +26
    -1
      autoload/vundle/installer.vim

+ 15
- 9
autoload/vundle/config.vim View File

@ -24,24 +24,29 @@ func! vundle#config#require(bundles) abort
endf endf
func! vundle#config#init_bundle(name, opts) func! vundle#config#init_bundle(name, opts)
let opts = extend(s:parse_options(a:opts), s:parse_name(substitute(a:name,"['".'"]\+','','g')))
let opts = extend(s:parse_options(a:opts), s:parse_name(substitute(a:name,"['".'"]\+','','g')), 'keep')
return extend(opts, copy(s:bundle)) return extend(opts, copy(s:bundle))
endf endf
func! s:parse_options(opts) func! s:parse_options(opts)
" TODO: improve this
if len(a:opts) != 1 | return {} | endif
if type(a:opts[0]) == type({})
" ignore everything except first argument
" which supposed to be option hash
if len(a:opts) == 1 && type(a:opts[0]) == type({})
return a:opts[0] return a:opts[0]
else
return {'rev': a:opts[0]}
endif endif
return {}
endf endf
func! s:parse_name(arg) func! s:parse_name(arg)
let arg = a:arg
let git_proto = exists('g:vundle_default_git_proto') ? g:vundle_default_git_proto : 'https' let git_proto = exists('g:vundle_default_git_proto') ? g:vundle_default_git_proto : 'https'
let args = split(a:arg, '\s\+')
let arg = args[0]
" Bundle 'gmarik/vundle v0.8'
if len(args) == 2
let revision = args[1]
let opts['v'] = revision
end
if arg =~? '^\s*\(gh\|github\):\S\+' if arg =~? '^\s*\(gh\|github\):\S\+'
\ || arg =~? '^[a-z0-9][a-z0-9-]*/[^/]\+$' \ || arg =~? '^[a-z0-9][a-z0-9-]*/[^/]\+$'
@ -59,7 +64,8 @@ func! s:parse_name(arg)
let name = arg let name = arg
let uri = git_proto.'://github.com/vim-scripts/'.name.'.git' let uri = git_proto.'://github.com/vim-scripts/'.name.'.git'
endif endif
return {'name': name, 'uri': uri, 'name_spec': arg }
return extend(opts, {'name': name, 'uri': uri, 'name_spec': arg })
endf endf
func! s:rtp_rm_a() func! s:rtp_rm_a()


+ 26
- 1
autoload/vundle/installer.vim View File

@ -196,9 +196,16 @@ endf
func! s:sync(bang, bundle) abort func! s:sync(bang, bundle) abort
let git_dir = expand(a:bundle.path().'/.git/', 1) let git_dir = expand(a:bundle.path().'/.git/', 1)
let revision = 'master'
if has_key(a:bundle, 'v') && !empty(a:bundle['v'])
let revision = a:bundle['v']
end
if isdirectory(git_dir) if isdirectory(git_dir)
if !(a:bang) | return 'todate' | endif if !(a:bang) | return 'todate' | endif
let cmd = 'cd '.shellescape(a:bundle.path()).' && git pull'
let cmd = 'cd '.shellescape(a:bundle.path()).' && git pull '.a:bundle.uri.' '.revision.':'.revision
if (has('win32') || has('win64')) if (has('win32') || has('win64'))
let cmd = substitute(cmd, '^cd ','cd /d ','') " add /d switch to change drives let cmd = substitute(cmd, '^cd ','cd /d ','') " add /d switch to change drives
@ -222,6 +229,24 @@ func! s:sync(bang, bundle) abort
return 'todate' return 'todate'
end end
" " checkout revision
" " master by default
"
" lcd `=a:bundle.path()`
" let cmd = 'git checkout '.revision
"
" silent exec '!'.cmd
"
" if 0 != v:shell_error
" echohl Error | echo 'Error checking out "'.a:bundle.name.' '.revision.'". Failed cmd: '.cmd | echohl None
" return [v:shell_error, 'error']
" end
"
" return [0, 'ok']
" endf
return 'updated' return 'updated'
endf endf


Loading…
Cancel
Save