updated for version 7.2a
diff --git a/runtime/syntax/gitcommit.vim b/runtime/syntax/gitcommit.vim
new file mode 100644
index 0000000..e75d044
--- /dev/null
+++ b/runtime/syntax/gitcommit.vim
@@ -0,0 +1,65 @@
+" Vim syntax file
+" Language:	git commit file
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
+" Filenames:	*.git/COMMIT_EDITMSG
+" Last Change:	2008 Apr 09
+
+if exists("b:current_syntax")
+    finish
+endif
+
+syn case match
+syn sync minlines=50
+
+if has("spell")
+    syn spell toplevel
+endif
+
+syn include @gitcommitDiff syntax/diff.vim
+syn region gitcommitDiff start=/\%(^diff --git \)\@=/ end=/^$\|^#\@=/ contains=@gitcommitDiff
+
+syn match   gitcommitFirstLine	"\%^[^#].*"  nextgroup=gitcommitBlank skipnl
+syn match   gitcommitSummary  	"^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
+syn match   gitcommitOverflow	".*" contained contains=@Spell
+syn match   gitcommitBlank	"^[^#].*" contained contains=@Spell
+syn match   gitcommitComment	"^#.*"
+syn region  gitcommitHead	start=/^#   / end=/^#$/ contained transparent
+syn match   gitcommitOnBranch	"\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
+syn match   gitcommitBranch	"\S\+" contained
+syn match   gitcommitHeader	"\%(^# \)\@<=.*:$"	contained containedin=gitcommitComment
+
+syn region  gitcommitUntracked	start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold
+syn match   gitcommitUntrackedFile  "\t\@<=.*"	contained
+
+syn region  gitcommitDiscarded	start=/^# Changed but not updated:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold
+syn region  gitcommitSelected	start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold
+
+syn match   gitcommitDiscardedType	"\t\@<=[a-z][a-z ]*[a-z]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite
+syn match   gitcommitSelectedType	"\t\@<=[a-z][a-z ]*[a-z]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite
+syn match   gitcommitDiscardedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
+syn match   gitcommitSelectedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
+syn match   gitcommitDiscardedArrow	" -> " contained nextgroup=gitcommitDiscardedFile
+syn match   gitcommitSelectedArrow	" -> " contained nextgroup=gitcommitSelectedFile
+
+hi def link gitcommitSummary		Keyword
+hi def link gitcommitComment		Comment
+hi def link gitcommitUntracked		gitcommitComment
+hi def link gitcommitDiscarded		gitcommitComment
+hi def link gitcommitSelected		gitcommitComment
+hi def link gitcommitOnBranch		Comment
+hi def link gitcommitBranch		Special
+hi def link gitcommitDiscardedType	gitcommitType
+hi def link gitcommitSelectedType	gitcommitType
+hi def link gitcommitType		Type
+hi def link gitcommitHeader		PreProc
+hi def link gitcommitUntrackedFile	gitcommitFile
+hi def link gitcommitDiscardedFile	gitcommitFile
+hi def link gitcommitSelectedFile	gitcommitFile
+hi def link gitcommitFile		Constant
+hi def link gitcommitDiscardedArrow	gitcommitArrow
+hi def link gitcommitSelectedArrow	gitcommitArrow
+hi def link gitcommitArrow		gitcommitComment
+"hi def link gitcommitOverflow		Error
+hi def link gitcommitBlank		Error
+
+let b:current_syntax = "gitcommit"