Added Subversion post-commit script for vim.
authorIain Patterson <me@iain.cx>
Mon, 11 Aug 2008 16:34:24 +0000 (16:34 +0000)
committerIain Patterson <me@iain.cx>
Mon, 11 Aug 2008 16:34:24 +0000 (16:34 +0000)
Set editor-cmd to vim -S <script> in Subversion config.
Set keywords for vim scripts.

git-svn-id: https://svn.cambridge.iain.cx/profile/trunk@131 6be0d1a5-5cfe-0310-89b6-964be062b18b

.subversion/config
.vim/script/p4
.vim/script/svn [new file with mode: 0644]

index 7e25f99..9d828f8 100644 (file)
@@ -1,4 +1,4 @@
 # $Id$
 
 [helpers]
-editor-cmd = vim
+editor-cmd = vim -S $HOME/.vim/script/svn
index 7970330..0be6351 100644 (file)
@@ -1,3 +1,4 @@
+" $Id$
 " Define the function we'll use.  It's easier to do this than to faff about 
 " trying to run a sequence of normal mode commands.
 fun! P4submit()
diff --git a/.vim/script/svn b/.vim/script/svn
new file mode 100644 (file)
index 0000000..c47f218
--- /dev/null
@@ -0,0 +1,37 @@
+" $Id$
+" Define the function we'll use.  It's easier to do this than to faff about 
+" trying to run a sequence of normal mode commands.
+fun! SVNcommit()
+  " Allow closing an unmodified spec.
+  set nomod
+
+  " Create a new window, move it below the spec and read in a diff.
+  botright new
+  r!svn diff
+  setf diff
+
+  " Delete the blank line left above the diff.
+  1
+  delete
+  se nobuflisted
+  set buftype=nofile
+  set bufhidden=hide
+  setlocal noswapfile
+
+  " Switch back to the top window.
+  wincmd k
+endfun
+
+" Expand the command line window so we don't have to press RETURN later.
+let s:cmdheight = &cmdheight
+se cmdheight=2
+
+" Call and then discard our function.
+call SVNcommit()
+delfunction SVNcommit
+
+" Restore the command window.
+exe "se cmdheight=" . s:cmdheight
+
+" Close the scratch buffer.
+au BufWinLeave <buffer=1> qa!