update git_menu so we dont prompt anymore unless needed

This commit is contained in:
marty 2009-08-20 03:08:18 +12:00
parent fcb54eee12
commit 46710bfb25

View File

@ -68,46 +68,50 @@ function! NERDTreeGitMove()
let node = g:NERDTreeFileNode.GetSelected() let node = g:NERDTreeFileNode.GetSelected()
let path = node.path let path = node.path
let p = path.strForOS(1) let p = path.strForOS(1)
call s:promptCommand('mv ', p . ' ' . p, 'file')
let newPath = input("==========================================================\n" .
\ "Enter the new path for the file: \n" .
\ "", node.path.strForOS(0))
if newPath ==# ''
call s:echo("git mv aborted.")
return
endif
call s:execGitCmd('mv ' . p . ' ' . newPath)
endfunction endfunction
function! NERDTreeGitAdd() function! NERDTreeGitAdd()
let node = g:NERDTreeFileNode.GetSelected() let node = g:NERDTreeFileNode.GetSelected()
let path = node.path let path = node.path
call s:promptCommand('add ', path.strForOS(1), 'file') call s:execGitCmd('add ' . path.strForOS(1))
endfunction endfunction
function! NERDTreeGitRemove() function! NERDTreeGitRemove()
let node = g:NERDTreeFileNode.GetSelected() let node = g:NERDTreeFileNode.GetSelected()
let path = node.path let path = node.path
call s:promptCommand('rm ', path.strForOS(1), 'file') call s:execGitCmd('rm ' . path.strForOS(1))
endfunction endfunction
function! NERDTreeGitCheckout() function! NERDTreeGitCheckout()
let node = g:NERDTreeFileNode.GetSelected() let node = g:NERDTreeFileNode.GetSelected()
let path = node.path let path = node.path
call s:promptCommand('checkout ', path.strForOS(1), 'file') call s:execGitCmd('checkout ' . path.strForOS(1))
endfunction endfunction
function! s:promptCommand(sub_command, cmd_tail_default, complete) function! s:execGitCmd(sub_cmd)
let extra_options = ' --git-dir=' . s:GitRepoPath() let extra_options = '--git-dir=' . s:GitRepoPath() . ' '
let extra_options .= ' --work-tree=' . b:NERDTreeRoot.path.str(0) . ' ' let extra_options .= '--work-tree=' . b:NERDTreeRoot.path.str(0)
let base = "git" . extra_options . a:sub_command let cmd = "git" . ' ' . extra_options . ' ' . a:sub_cmd
let node = g:NERDTreeFileNode.GetSelected() let output = system(cmd)
redraw!
let cmd_tail = input(":!" . base, a:cmd_tail_default, a:complete) if v:shell_error == 0
if cmd_tail != '' let node = g:NERDTreeFileNode.GetSelected()
let output = system(base . cmd_tail) if !node.isRoot()
redraw!
if v:shell_error == 0
call node.parent.refresh() call node.parent.refresh()
call NERDTreeRender() call NERDTreeRender()
else
echo output
endif endif
else else
redraw echomsg output
echo "Aborted"
endif endif
endfunction endfunction