view contrib/vim/HGAnnotate.vim @ 15183:59e8bc22506e

rollback: avoid unsafe rollback when not at tip (issue2998) You can get into trouble if you commit, update back to an older changeset, and then rollback. The update removes your valuable changes from the working dir, then rollback removes them history. Oops: you've just irretrievably lost data running nothing but core Mercurial commands. (More subtly: rollback from a shared clone that was already at an older changeset -- no update required, just rollback from the wrong directory.) The fix assumes that only "commit" transactions have irreplaceable data, and allows rolling back non-commit transactions as always. But when rolling back a commit, check that the working dir is checked out to tip, i.e. the changeset we're about to destroy. If not, abort. You can get back the old (dangerous) behaviour with --force.
author Greg Ward <greg@gerg.ca>
date Fri, 30 Sep 2011 21:58:54 -0400
parents 61f2008cd6bf
children
line wrap: on
line source

" $Id: CVSAnnotate.vim,v 1.5 2002/10/01 21:34:02 rhiestan Exp $
" Vim syntax file
" Language:	CVS annotate output
" Maintainer:	Bob Hiestand <bob@hiestandfamily.org>
" Last Change:	$Date: 2002/10/01 21:34:02 $
" Remark:	Used by the cvscommand plugin.  Originally written by Mathieu
" Clabaut
if version < 600
  syntax clear
elseif exists("b:current_syntax")
  finish
endif

syn match cvsDate 	/\S\S\S \S\+ \d\+ \d\+:\d\+:\d\+ \d\+ [+-]\?\d\+/ contained
syn match cvsName  	/^\s*\S\+ / 		contained nextgroup=cvsVer
syn match cvsVer 	/\d\+ / 		contained nextgroup=cvsDate
syn region cvsHead 	start="^" end=":" 	contains=cvsVer,cvsName,cvsDate

if !exists("did_cvsannotate_syntax_inits")
let did_cvsannotate_syntax_inits = 1
hi link cvsText 	String
hi link cvsDate 	Comment
hi link cvsName	Type
hi link cvsVer	Statement
endif

let b:current_syntax="CVSAnnotate"