|
|
" vim600: set foldmethod=marker:
|
|
|
" =============================================================================
|
|
|
" Name Of File: hg-menu.vim
|
|
|
" Description: Interface to Mercurial Version Control.
|
|
|
" Author: Steve Borho (modified Jeff Lanzarotta's RCS script)
|
|
|
" Date: Wednesday, October 5, 2005
|
|
|
" Version: 0.1.0
|
|
|
" Copyright: None.
|
|
|
" Usage: These command and gui menu displays useful hg functions
|
|
|
" Configuration: Your hg executable must be in your path.
|
|
|
" =============================================================================
|
|
|
|
|
|
" Section: Init {{{1
|
|
|
if exists("loaded_hg_menu")
|
|
|
finish
|
|
|
endif
|
|
|
let loaded_hg_menu = 1
|
|
|
|
|
|
" Section: Menu Options {{{1
|
|
|
if has("gui")
|
|
|
" amenu H&G.Commit\ File<Tab>,ci :!hg commit %<CR>:e!<CR>
|
|
|
" amenu H&G.Commit\ All<Tab>,call :!hg commit<CR>:e!<CR>
|
|
|
" amenu H&G.-SEP1- <nul>
|
|
|
amenu H&G.Add<Tab>\\add :!hg add %<CR><CR>
|
|
|
amenu H&G.Forget\ Add<Tab>\\fgt :!hg forget %<CR><CR>
|
|
|
amenu H&G.Show\ Differences<Tab>\\diff :call ShowResults("FileDiff", "hg\ diff")<CR><CR>
|
|
|
amenu H&G.Revert\ to\ Last\ Version<Tab>\\revert :!hg revert %<CR>:e!<CR>
|
|
|
amenu H&G.Show\ History<Tab>\\log :call ShowResults("FileLog", "hg\ log")<CR><CR>
|
|
|
amenu H&G.Annotate<Tab>\\an :call ShowResults("annotate", "hg\ annotate")<CR><CR>
|
|
|
amenu H&G.-SEP1- <nul>
|
|
|
amenu H&G.Repo\ Status<Tab>\\stat :call ShowResults("RepoStatus", "hg\ status")<CR><CR>
|
|
|
amenu H&G.Pull<Tab>\\pull :!hg pull<CR>:e!<CR>
|
|
|
amenu H&G.Update<Tab>\\upd :!hg update<CR>:e!<CR>
|
|
|
endif
|
|
|
|
|
|
" Section: Mappings {{{1
|
|
|
if(v:version >= 600)
|
|
|
" The default Leader is \ 'backslash'
|
|
|
map <Leader>add :!hg add %<CR><CR>
|
|
|
map <Leader>fgt :!hg forget %<CR><CR>
|
|
|
map <Leader>diff :call ShowResults("FileDiff", "hg\ diff")<CR><CR>
|
|
|
map <Leader>revert :!hg revert %<CR>:e!<CR>
|
|
|
map <Leader>log :call ShowResults("FileLog", "hg\ log")<CR><CR>
|
|
|
map <Leader>an :call ShowResults("annotate", "hg\ annotate")<CR><CR>
|
|
|
map <Leader>stat :call ShowResults("RepoStatus", "hg\ status")<CR><CR>
|
|
|
map <Leader>upd :!hg update<CR>:e!<CR>
|
|
|
map <Leader>pull :!hg pull<CR>:e!<CR>
|
|
|
else
|
|
|
" pre 6.0, the default Leader was a comma
|
|
|
map ,add :!hg add %<CR><CR>
|
|
|
map ,fgt :!hg forget %<CR><CR>
|
|
|
map ,diff :call ShowResults("FileDiff", "hg\ diff")<CR><CR>
|
|
|
map ,revert :!hg revert<CR>:e!<CR>
|
|
|
map ,log :call ShowResults("FileLog", "hg\ log")<CR><CR>
|
|
|
map ,an :call ShowResults("annotate", "hg\ annotate")<CR><CR>
|
|
|
map ,stat :call ShowResults("RepoStatus", "hg\ status")<CR><CR>
|
|
|
map ,upd :!hg update<CR>:e!<CR>
|
|
|
map ,pull :!hg pull<CR>:e!<CR>
|
|
|
endif
|
|
|
|
|
|
" Section: Functions {{{1
|
|
|
" Show the log results of the current file with a revision control system.
|
|
|
function! ShowResults(bufferName, cmdName)
|
|
|
" Modify the shortmess option:
|
|
|
" A don't give the "ATTENTION" message when an existing swap file is
|
|
|
" found.
|
|
|
set shortmess+=A
|
|
|
|
|
|
" Get the name of the current buffer.
|
|
|
let currentBuffer = bufname("%")
|
|
|
|
|
|
" If a buffer with the name rlog exists, delete it.
|
|
|
if bufexists(a:bufferName)
|
|
|
execute 'bd! ' a:bufferName
|
|
|
endif
|
|
|
|
|
|
" Create a new buffer.
|
|
|
execute 'new ' a:bufferName
|
|
|
|
|
|
" Execute the command.
|
|
|
execute 'r!' a:cmdName ' ' currentBuffer
|
|
|
|
|
|
" Make is so that the file can't be edited.
|
|
|
setlocal nomodified
|
|
|
setlocal nomodifiable
|
|
|
setlocal readonly
|
|
|
|
|
|
" Go to the beginning of the buffer.
|
|
|
execute "normal 1G"
|
|
|
|
|
|
" Restore the shortmess option.
|
|
|
set shortmess-=A
|
|
|
endfunction
|
|
|
|