Browse Source

Update git commands

Update git commands for bundle install and upgrade for better
git tree-ish support
pull/189/head
Aleksey 'Xerkus' Khudyakov 14 years ago
parent
commit
96d0734edd
1 changed files with 12 additions and 21 deletions
  1. +12
    -21
      autoload/vundle/installer.vim

+ 12
- 21
autoload/vundle/installer.vim View File

@ -219,25 +219,29 @@ func! s:sync(bang, bundle) abort
return 'todate'
endif
let git_dir = expand(a:bundle.path().'/.git/', 1)
let target_treeish = get(a:bundle, 'tree-ish', '')
let target_treeish = get(a:bundle, 'tree-ish', 'master')
let cd = 'cd '
if (has('win32') || has('win64'))
let cd = 'cd /d ' " add /d switch to change drives
endif
if isdirectory(git_dir)
if !(a:bang) | return 'todate' | endif
let cmd = 'cd '.shellescape(a:bundle.path()).' && git checkout master && git pull --ff-only --all'
if (has('win32') || has('win64'))
let cmd = substitute(cmd, '^cd ','cd /d ','') " add /d switch to change drives
let cmd = '"'.cmd.'"' " enclose in quotes
endif
let cmd = cd . shellescape(a:bundle.path()).' && git fetch --all && git checkout '.shellescape(target_treeish)
let get_current_sha = 'cd '.shellescape(a:bundle.path()).' && git rev-parse HEAD'
let get_current_sha = cd . shellescape(a:bundle.path()).' && git rev-parse HEAD'
let initial_sha = s:system(get_current_sha)[0:15]
"make sure non-hash will not be accidentally matched
if (len(target_treeish) > 5 && stridx(initial_sha, target_treeish) == 0) | return 'todate' | endif
else
let cmd = 'git clone '.a:bundle.uri.' '.shellescape(a:bundle.path())
let cmd .= ' && '. cd . shellescape(a:bundle.path()).' && git checkout '.shellescape(target_treeish)
let initial_sha = ''
endif
if (has('win32') || has('win64'))
let cmd = '"'.cmd.'"' " enclose in quotesi
endif
let out = s:system(cmd)
call s:log('')
call s:log('Bundle '.a:bundle.name_spec)
@ -248,19 +252,6 @@ func! s:sync(bang, bundle) abort
return 'error'
end
if (!empty(target_treeish))
let checkout_cmd = 'cd '.shellescape(a:bundle.path()).' && git checkout '.shellescape(target_treeish)
let out = s:system(checkout_cmd)
call s:log('')
call s:log('Checkout tree-ish: '. target_treeish)
call s:log('$ '.checkout_cmd)
call s:log('> '.out)
if 0 != v:shell_error
return 'error'
end
endif
if empty(initial_sha)
return 'new'
endif


Loading…
Cancel
Save