##// END OF EJS Templates
patch: include flag-only file changes in "special" when filtering (issue5864)...
patch: include flag-only file changes in "special" when filtering (issue5864) This patch fix the issue5864 (or maybe issue5865 too) which occurs during split (or I should say at the time of filtering the hunks in interactive mode) where user hits a not ending loop of "no changes to record". And it's not only the case for split it will happen in every interactive case for e.g. `hg commit -i` or `hg uncommit -i` After looking into code I found that when filtering we have some notation called "special" for the file headers which doesn't contain any hunk and just contain the header (for e.g. newly added empty file or deleted file) where the user cannot change the content of operation. And I think we can put this "flag-only" file change in that same bucket of "special". But I doubt a bit about the case when a file have flag change and atleast one hunk then user won't be able to separate the flag change from hunks. Changed test file reflect the fixed behaviour. Differential Revision: https://phab.mercurial-scm.org/D6058

File last commit:

r5081:ea7b982b default
r42149:f8c5225b default
Show More
hg-menu.vim
93 lines | 3.5 KiB | text/x-vim | VimLexer
" 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