[SCM] vim-scripts packaging branch, master, updated. 94d6931b39bc216e79e1673187150bfec7383e86

James Vega jamessan at debian.org
Wed Sep 2 03:34:01 UTC 2009


The following commit has been merged in the master branch:
commit 2d38793e651d06ae869fb153066ed683756f0fb3
Author: James Vega <jamessan at debian.org>
Date:   Tue Sep 1 23:16:28 2009 -0400

    Update VCSCommand to 1.99.31

diff --git a/debian/changelog b/debian/changelog
index 849a2e7..2f1a362 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,7 +5,8 @@ vim-scripts (20090211-2) UNRELEASED; urgency=low
   * Remove git-commit script.  Vim is shipped with more complete scripts.
     (Closes: #539380)
   * addons upgrades:
-    - supertab, DoxygenToolkit, NERD_commenter, Color Sampler Pack, xmledit
+    - supertab, DoxygenToolkit, NERD_commenter, Color Sampler Pack, xmledit,
+      VCSCommand
   * Add disabledby-doxygentoolkit.diff patch, which enables the commented out
     plugin loaded check.
   * Add xml-nodocs.diff patch, which disables xmledit's "automatic
diff --git a/debian/vim-scripts.status b/debian/vim-scripts.status
index 98095cc..efe2027 100644
--- a/debian/vim-scripts.status
+++ b/debian/vim-scripts.status
@@ -137,9 +137,9 @@ author:      Robert Hiestand
 author_url:  http://www.vim.org/account/profile.php?user_id=241
 email:       bob.hiestand at gmail.com
 license:     license[7], see below
-extras:	     doc/vcscommand.txt, plugin/vcscvs.vim, plugin/vcsgit.vim, plugin/vcssvn.vim, plugin/vcssvk.vim, syntax/CVSAnnotate.vim, syntax/SVNAnnotate.vim, syntax/SVKAnnotate.vim, syntax/vcscommit.vim
+extras:	     doc/vcscommand.txt, plugin/vcs*.vim, syntax/CVSAnnotate.vim, syntax/gitAnnotate.vim, syntax/SVNAnnotate.vim, syntax/SVKAnnotate.vim, syntax/vcscommit.vim
 disabledby:  let VCSCommandDisableAll = 1
-version:     beta28
+version:     1.99.31
 
 script_name: plugin/utl.vim
 addon:       utl
diff --git a/doc/vcscommand.txt b/doc/vcscommand.txt
index 0317fa0..cf6bd97 100644
--- a/doc/vcscommand.txt
+++ b/doc/vcscommand.txt
@@ -131,7 +131,7 @@ This command adds the current file to source control.  Please note, this does
 not commit the newly-added file.  All parameters to the command are passed to
 the underlying VCS.
 
-:VCSAnnotate						*:VCSAnnotate*
+:VCSAnnotate[!]						*:VCSAnnotate*
 
 This command displays the current file with each line annotated with the
 version in which it was most recently changed.  If an argument is given, the
@@ -140,16 +140,20 @@ it uses the most recent version of the file (on the current branch, if under
 CVS control).  Additionally, if the current buffer is a VCSAnnotate buffer
 already, the version number on the current line is used.
 
+If '!' is used, the view of the annotated buffer is split so that the
+annotation is in a separate window from the content, and each is highlighted
+separately.
+
 For CVS buffers, the 'VCSCommandCVSAnnotateParent' option, if set to non-zero,
 will cause the above behavior to change.  Instead of annotating the version on
 the current line, the parent revision is used instead, crossing branches if
 necessary.
 
 The filetype of the vcscommand scratch buffer is set to one of 'CVSAnnotate',
-'SVNAnnotate', or 'SVKAnnotate' as appropriate, to take advantage of the
+'SVNAnnotate', 'SVKAnnotate' or 'gitAnnotate' as appropriate, to take advantage of the
 bundled syntax files.
 
-:VCSBlame						*:VCSBlame*
+:VCSBlame[!]						*:VCSBlame*
 
 Alias for |:VCSAnnotate|.
 
@@ -327,6 +331,7 @@ default (no-argument) form of each command.
 
 <Leader>ca VCSAdd
 <Leader>cn VCSAnnotate
+<Leader>cN VCSAnnotate!
 <Leader>cc VCSCommit
 <Leader>cD VCSDelete
 <Leader>cd VCSDiff
@@ -438,6 +443,7 @@ The following variables are available:
 |VCSCommandSVNDiffExt|
 |VCSCommandSVNDiffOpt|
 |VCSCommandSVNExec|
+|VCSCommandVCSTypeOverride|
 
 VCSCommandCommitOnWrite				*VCSCommandCommitOnWrite*
 
@@ -562,6 +568,15 @@ VCSCommandSVNExec				*VCSCommandSVNExec*
 This variable controls the executable used for all SVN commands  If not set,
 it defaults to "svn".
 
+VCSCommandVCSTypeOverride			*VCSCommandVCSTypeOverride*
+
+This variable allows the VCS type detection to be overridden on a path-by-path
+basis.  The value of this variable is expected to be a List of Lists.  Each
+item in the high-level List is a List containing two elements.  The first
+element is a regular expression that will be matched against the full file
+name of a given buffer.  If it matches, the second element will be used as the
+VCS type.
+
 5.2 VCSCommand events				*vcscommand-events*
 
 For additional customization, vcscommand can trigger user-defined events.
@@ -573,7 +588,7 @@ For instance, the following could be added to the vimrc to provide a 'q'
 mapping to quit a vcscommand scratch buffer:
 
 augroup VCSCommand
-  au User VCSBufferCreated silent! nmap <unique> <buffer> q: bwipeout<cr>
+  au User VCSBufferCreated silent! nmap <unique> <buffer> q :bwipeout<cr>
 augroup END
 
 The following hooks are available:
diff --git a/html/index.html b/html/index.html
index d62c313..1a13100 100644
--- a/html/index.html
+++ b/html/index.html
@@ -50,7 +50,7 @@
    <li><a href="syntax_mkd.vim.html">syntax/mkd.vim.html</a></li>
   </ul>
   <p>
-  Page generated on Tue, 01 Sep 2009 21:56:00 -0400
+  Page generated on Tue, 01 Sep 2009 23:15:14 -0400
 .
   </p>
  </body>
diff --git a/html/plugin_vcscommand.vim.html b/html/plugin_vcscommand.vim.html
index 92db9b3..a6a27d5 100644
--- a/html/plugin_vcscommand.vim.html
+++ b/html/plugin_vcscommand.vim.html
@@ -46,6 +46,19 @@
     <tr>
         <td><small>not logged in (<a href="/login.php">login</a>)</small></td>
     </tr>
+    <tr><td>
+<small>&nbsp;</small>
+<form action="http://www.google.com/cse" id="cse-search-box">
+  <div>
+    <input type="hidden" name="cx" value="partner-pub-3005259998294962:bvyni59kjr1" />
+    <input type="hidden" name="ie" value="ISO-8859-1" />
+    <input type="text" name="q" size="20" />
+    <br>
+    <input type="submit" name="sa" value="Search" />
+  </div>
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&amp;lang=en"></script>
+    </td></tr>
     <tr>
         <td><img src="/images/spacer.gif" alt="" border="0" width="1" height="1"></td>
     </tr>
@@ -59,7 +72,7 @@
             <td class="sidebarheader"><a href="/index.php">Home</a></td>
         </tr>
         <tr>
-            <td class="sidebarheader"><a href="/search.php">Search</a></td>
+            <td class="sidebarheader"><a href="/search.php">Advanced search</a></td>
         </tr>
     <tr>
         <td><img src="/images/spacer.gif" alt="" border="0" width="1" height="7"></td>
@@ -153,8 +166,8 @@
 <tr>
   <td class="lightbg"><b>&nbsp;script karma&nbsp;</b></td>
   <td>
-    Rating <b>1695/549</b>,
-    Downloaded by 24885  </td>
+    Rating <b>2098/697</b>,
+    Downloaded by 30334  </td>
 </tr>
 </table>
 <p>
@@ -167,7 +180,7 @@
 <tr><td>utility</td></tr>
 <tr><td>&nbsp;</td></tr>
 <tr><td class="prompt">description</td></tr>
-<tr><td>VIM 7 plugin useful for manipulating files controlled by CVS, SVN, SVK and git within VIM, including committing changes and performing diffs using the vimdiff system.&nbsp;&nbsp;Keywords:&nbsp;&nbsp;cvs CVS cvscommand git subversion SVN svk vcscommand
<br>
<br>The source for this plugin is available in git at <a target="_blank" href="git://repo.or.cz/vcscommand">git://repo.or.cz/vcscommand</A> .&nbsp;&nbsp;A web front end is available at <a target="_blank" href="http://repo.or.cz/w/vcscommand.git">http://repo.or.cz/w/vcscommand.git</A> .
<br>
<br>Please submit any issues at <a target="_blank" href="http://code.google.com/p/vcscommand/">http://code.google.com/p/vcscommand/</A>
<br></td></tr>
+<tr><td>VIM 7 plugin useful for manipulating files controlled by CVS, SVN, SVK, git, bzr, and hg within VIM, including committing changes and performing diffs using the vimdiff system.&nbsp;&nbsp;Keywords:&nbsp;&nbsp;bazaar bzr cvs CVS cvscommand git mercurial hg subversion SVN svk vcscommand
<br>
<br>The source for this plugin is available in git at <a target="_blank" href="git://repo.or.cz/vcscommand">git://repo.or.cz/vcscommand</A> .&nbsp;&nbsp;A web front end is available at <a target="_blank" href="http://repo.or.cz/w/vcscommand.git">http://repo.or.cz/w/vcscommand.git</A> .
<br>
<br>Please submit any issues at <a target="_blank" href="http://code.google.com/p/vcscommand/">http://code.google.com/p/vcscommand/</A>
<br></td></tr>
 <tr><td>&nbsp;</td></tr>
 <tr><td class="prompt">install details</td></tr>
 <tr><td>If you are upgrading from the cvscommand.vim script, remove the cvscommand.vim plugin and the cvscommand.txt help file from your system before installing this version.&nbsp;&nbsp;Also, read the CHANGES.txt file to learn about changes since cvscommand.vim.
<br>
<br>For Vim 7:
<br>
<br>&nbsp;&nbsp;Unzip the installation file.
<br>&nbsp;&nbsp;Move the vcscommand.vim, vcscvs.vim, vcssvn.vim, vcssvk.vim, and vcsgit.vim scripts into your plugin directory.
<br>&nbsp;&nbsp;Move the vcscommand.txt file into your doc directory and use the ':helptags' command to add it to your help directory (:help add-local-help).
<br>
<br>Optionally, you can move the syntax scripts into your syntax directory to get syntax highlighting of annotate result buffers.
<br>
<br>For vim 6.x:
<br>
<br>Use a previous version of the script (1.76 of cvscommand.zip).&nbsp;&nbsp;This only supports CVS.</td></tr>
@@ -204,15 +217,31 @@ Click on the package to download.
     <th valign="top">release notes</th>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=9279">vcscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>beta28</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2008-09-24</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=11049">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.99.31</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2009-07-21</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Add 'VCSCommandDisableAll' variable to prevent the plugin or any extensions from loading.
<br>
<br>vcssvn:&nbsp;&nbsp;prevent hangs caused by querying the user for input by specifying '--non-interactive' on the appropriate commands.
<br>
<br>Use &diffopt to seed the default DiffSplit orientation. (James Vega)
<br></td>
+    <td class="rowodd" valign="top" width="2000">Added VCSAnnotate! (and VCSBlame!) (default keybinding &lt;leader&gt;cN) to split the resulting buffer into separate header and content windows.
<br>
<br>Included support for bzr and hg (as generously provided by others).
<br>
<br>Added syntax file for git annotate buffers.
<br></td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=9278">vcscommand.zip</a></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=11044">vcscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>beta30</b></td>
+    <td class="roweven" valign="top" nowrap><i>2009-07-20</i></td>
+    <td class="roweven" valign="top" nowrap>7.0</td>
+    <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
+    <td class="roweven" valign="top" width="2000">vcscvs:&nbsp;&nbsp;Removed useless (and bug-inspiring) aunmenu.
<br>
<br>vcscvs:&nbsp;&nbsp;Remove extraneous debug message issued by recent cvs.
<br>
<br>Fixed typo in sample macro documentation.</td>
+</tr>
+<tr>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=9965">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>beta29</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2009-02-13</i></td>
+    <td class="rowodd" valign="top" nowrap>7.0</td>
+    <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
+    <td class="rowodd" valign="top" width="2000">Added 'VCSCommandVCSTypeOverride' variable for explicitly overriding VCS type detection for specific directories.</td>
+</tr>
+<tr>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=9279">vcscommand.zip</a></td>
     <td class="roweven" valign="top" nowrap><b>beta28</b></td>
     <td class="roweven" valign="top" nowrap><i>2008-09-24</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
@@ -220,308 +249,316 @@ Click on the package to download.
     <td class="roweven" valign="top" width="2000">Add 'VCSCommandDisableAll' variable to prevent the plugin or any extensions from loading.
<br>
<br>vcssvn:&nbsp;&nbsp;prevent hangs caused by querying the user for input by specifying '--non-interactive' on the appropriate commands.
<br>
<br>Use &diffopt to seed the default DiffSplit orientation. (James Vega)
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=9188">vcscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>beta27</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2008-08-28</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=9278">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>beta28</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2008-09-24</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Shortcut / mapping configuration changes:
<br>
<br>Do not fail out of plugin at first failed mapping.&nbsp;&nbsp;Indicate mapping conflicts only if 'verbose' is set.
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<br>Add new option 'VCSCommandMapPrefix' for overriding the default prefix '&lt;Leader&gt;c' in mappings.
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<br>Add new option 'VCSCommandMappings' to completely override all default mappings.
<br></td>
+    <td class="rowodd" valign="top" width="2000">Add 'VCSCommandDisableAll' variable to prevent the plugin or any extensions from loading.
<br>
<br>vcssvn:&nbsp;&nbsp;prevent hangs caused by querying the user for input by specifying '--non-interactive' on the appropriate commands.
<br>
<br>Use &diffopt to seed the default DiffSplit orientation. (James Vega)
<br></td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=8827">vcscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>beta 26</b></td>
-    <td class="roweven" valign="top" nowrap><i>2008-06-19</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=9188">vcscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>beta27</b></td>
+    <td class="roweven" valign="top" nowrap><i>2008-08-28</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">vcsgit:&nbsp;&nbsp;Set &ft correctly for VCSStatus buffers.
<br>
<br>vcsgit:&nbsp;&nbsp;Quote the blob name for VCSReview to handle paths with spaces.</td>
+    <td class="roweven" valign="top" width="2000">Shortcut / mapping configuration changes:
<br>
<br>Do not fail out of plugin at first failed mapping.&nbsp;&nbsp;Indicate mapping conflicts only if 'verbose' is set.
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<br>Add new option 'VCSCommandMapPrefix' for overriding the default prefix '&lt;Leader&gt;c' in mappings.
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<br>Add new option 'VCSCommandMappings' to completely override all default mappings.
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=8747">vcscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>beta25</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2008-06-03</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=8827">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>beta 26</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2008-06-19</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">This fixes the&nbsp;&nbsp;'cdpath' error in git VCSReview and (2 argument) VCSVimDiff.
<br></td>
+    <td class="rowodd" valign="top" width="2000">vcsgit:&nbsp;&nbsp;Set &ft correctly for VCSStatus buffers.
<br>
<br>vcsgit:&nbsp;&nbsp;Quote the blob name for VCSReview to handle paths with spaces.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=8709">vcscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>beta24</b></td>
-    <td class="roweven" valign="top" nowrap><i>2008-05-20</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=8747">vcscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>beta25</b></td>
+    <td class="roweven" valign="top" nowrap><i>2008-06-03</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Revert &quot;Call subversion with the '--non-interactive' switch to avoid locking up when authentication can't be prompted.&quot;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use 'setlocal' instead of 'set' for all buffer option changes.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use 'enew' followed by 'file' instead of 'edit' when creating output buffers.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Don't execute autocommands when naming VCS command output buffers.
<br>
<br>This set of changes may avoid issues related to autocommands that execute when the command result buffer is opened.</td>
+    <td class="roweven" valign="top" width="2000">This fixes the&nbsp;&nbsp;'cdpath' error in git VCSReview and (2 argument) VCSVimDiff.
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=8459">vcscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>beta22</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2008-03-17</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=8709">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>beta24</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2008-05-20</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Added VCSCommandGitDescribeArgList option to control allowed modes of 'git describe' used in GetBufferInfo for git.&nbsp;&nbsp;This is a comma-separated list of arguments to try against git-describe.&nbsp;&nbsp;This is an attempt to have prioritized fallbacks of descriptions, and runs in order until it finds a valid description.&nbsp;&nbsp;This value defaults to ',tags,all,always', and so first searches annotated tags, then tags, then all references, then a commit description.</td>
+    <td class="rowodd" valign="top" width="2000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Revert &quot;Call subversion with the '--non-interactive' switch to avoid locking up when authentication can't be prompted.&quot;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use 'setlocal' instead of 'set' for all buffer option changes.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use 'enew' followed by 'file' instead of 'edit' when creating output buffers.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Don't execute autocommands when naming VCS command output buffers.
<br>
<br>This set of changes may avoid issues related to autocommands that execute when the command result buffer is opened.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=8435">vcscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>beta21</b></td>
-    <td class="roweven" valign="top" nowrap><i>2008-03-11</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=8459">vcscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>beta22</b></td>
+    <td class="roweven" valign="top" nowrap><i>2008-03-17</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Tweaked buffer info for git buffers.
<br>
<br>Don't clobber &cp when testing for a vcs command.
<br>
<br>Added 'options' Dict to VCSCommandDoCommand for tweaking framework behavior.
<br>
<br>Allow non-zero vcs command exit status when 'allowNonZeroExit' option is passed to VCSCommandDoCommand.
<br>
<br>Implemented VCSStatus for git as (repository-wide) 'git status'.
<br>
<br>Converted to leading tab style.
<br>
<br>Distinguish between exact and inexact identifications by extensions.
<br>
<br>Mark git identification as inexact, so that using another VCS to control directories somewhere under a git-controlled directory does not identify the files incorrectly as git.
<br>
<br>Moved CHANGES.txt content into help file.
<br></td>
+    <td class="roweven" valign="top" width="2000">Added VCSCommandGitDescribeArgList option to control allowed modes of 'git describe' used in GetBufferInfo for git.&nbsp;&nbsp;This is a comma-separated list of arguments to try against git-describe.&nbsp;&nbsp;This is an attempt to have prioritized fallbacks of descriptions, and runs in order until it finds a valid description.&nbsp;&nbsp;This value defaults to ',tags,all,always', and so first searches annotated tags, then tags, then all references, then a commit description.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=8210">vcscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>beta20</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2008-02-01</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=8435">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>beta21</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2008-03-11</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Implemented (first pass of) git support.
<br>
<br>Temporarily removed buffer status/command verification scheme.
<br>
<br>Save and restore 'foldlevel' with VCSVimDiff.
<br>
<br>Added VCSRemove as alias for VCSDelete.
<br>Added VCSBlame as alias for VCSAnnotate.
<br></td>
+    <td class="rowodd" valign="top" width="2000">Tweaked buffer info for git buffers.
<br>
<br>Don't clobber &cp when testing for a vcs command.
<br>
<br>Added 'options' Dict to VCSCommandDoCommand for tweaking framework behavior.
<br>
<br>Allow non-zero vcs command exit status when 'allowNonZeroExit' option is passed to VCSCommandDoCommand.
<br>
<br>Implemented VCSStatus for git as (repository-wide) 'git status'.
<br>
<br>Converted to leading tab style.
<br>
<br>Distinguish between exact and inexact identifications by extensions.
<br>
<br>Mark git identification as inexact, so that using another VCS to control directories somewhere under a git-controlled directory does not identify the files incorrectly as git.
<br>
<br>Moved CHANGES.txt content into help file.
<br></td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=7435">vcscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>beta19</b></td>
-    <td class="roweven" valign="top" nowrap><i>2007-07-31</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=8210">vcscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>beta20</b></td>
+    <td class="roweven" valign="top" nowrap><i>2008-02-01</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Load the plugin with nocompatible set, as it should have been done a few years ago.</td>
+    <td class="roweven" valign="top" width="2000">Implemented (first pass of) git support.
<br>
<br>Temporarily removed buffer status/command verification scheme.
<br>
<br>Save and restore 'foldlevel' with VCSVimDiff.
<br>
<br>Added VCSRemove as alias for VCSDelete.
<br>Added VCSBlame as alias for VCSAnnotate.
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=7119">vcscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>beta18</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2007-05-15</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=7435">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>beta19</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2007-07-31</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Added 'VCSCommandDisableMappings' and 'VCSCommandDisableExtensionMappings' options.&nbsp;&nbsp;If set, these variables prevent creation of the default command key mappings.</td>
+    <td class="rowodd" valign="top" width="2000">Load the plugin with nocompatible set, as it should have been done a few years ago.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=7112">vcscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>beta17</b></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=7119">vcscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>beta18</b></td>
     <td class="roweven" valign="top" nowrap><i>2007-05-15</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Use 'executable()' to test for VCS tools (to avoid potentially slow operation at plugin load time).
<br>
<br>Always pass current revision to VCSAnnotate when using CVS with no arguments.</td>
+    <td class="roweven" valign="top" width="2000">Added 'VCSCommandDisableMappings' and 'VCSCommandDisableExtensionMappings' options.&nbsp;&nbsp;If set, these variables prevent creation of the default command key mappings.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=7044">vcscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>beta16</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2007-04-30</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=7112">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>beta17</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2007-05-15</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">VCSLog accepts passthrough options.
<br>VCSDiff correctly checks whether second argument starts with hyphen when deciding whether to pass-through.
<br></td>
+    <td class="rowodd" valign="top" width="2000">Use 'executable()' to test for VCS tools (to avoid potentially slow operation at plugin load time).
<br>
<br>Always pass current revision to VCSAnnotate when using CVS with no arguments.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=7025">vcscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>beta15</b></td>
-    <td class="roweven" valign="top" nowrap><i>2007-04-24</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=7044">vcscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>beta16</b></td>
+    <td class="roweven" valign="top" nowrap><i>2007-04-30</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Use 'haslocaldir()' if available to correctly handle windows that used :lcd.
<br>
<br>Made VCSDiff pass-through.
<br>
<br>Fixed SVK VCSDiff implementation.
<br>
<br>Made VCSCommands work a bit better on directory buffers (netrw).
<br>
<br>Replaced delayed extension registration to directly loading the main plugin from
<br>extension plugins.&nbsp;&nbsp;This allows base functions declared in the main plugin to
<br>be used in the extensions.
<br>
<br>Fixed SVN diff to actually use 'VCSCommandSVNDiffOpt' option.</td>
+    <td class="roweven" valign="top" width="2000">VCSLog accepts passthrough options.
<br>VCSDiff correctly checks whether second argument starts with hyphen when deciding whether to pass-through.
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6975">vcscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>beta14</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2007-04-12</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=7025">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>beta15</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2007-04-24</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Reincarnated 'CVSAnnotateParent' option for CVS as 'VCSCommandCVSAnnotateParent'.
<br>
<br>Close all vcscommand result buffers when vim exits to prevent them from being written to the viminfo file.</td>
+    <td class="rowodd" valign="top" width="2000">Use 'haslocaldir()' if available to correctly handle windows that used :lcd.
<br>
<br>Made VCSDiff pass-through.
<br>
<br>Fixed SVK VCSDiff implementation.
<br>
<br>Made VCSCommands work a bit better on directory buffers (netrw).
<br>
<br>Replaced delayed extension registration to directly loading the main plugin from
<br>extension plugins.&nbsp;&nbsp;This allows base functions declared in the main plugin to
<br>be used in the extensions.
<br>
<br>Fixed SVN diff to actually use 'VCSCommandSVNDiffOpt' option.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6858">vcscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>beta13</b></td>
-    <td class="roweven" valign="top" nowrap><i>2007-03-12</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6975">vcscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>beta14</b></td>
+    <td class="roweven" valign="top" nowrap><i>2007-04-12</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Fixed following commands (broken in Beta 12):
<br>&nbsp;&nbsp;VCSLock
<br>&nbsp;&nbsp;VCSRevert
<br>&nbsp;&nbsp;VCSUnlock
<br>&nbsp;&nbsp;VCSUpdate</td>
+    <td class="roweven" valign="top" width="2000">Reincarnated 'CVSAnnotateParent' option for CVS as 'VCSCommandCVSAnnotateParent'.
<br>
<br>Close all vcscommand result buffers when vim exits to prevent them from being written to the viminfo file.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6814">vcscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>beta12</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2007-02-28</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6858">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>beta13</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2007-03-12</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Added SVK support.
<br>
<br>Replaced SVN-specific command SVNInfo with VCSInfo, which is defined for SVK
<br>and SVN.&nbsp;&nbsp;This is mapped to '&lt;leader&gt;ci' by default; as a consequence, the
<br>default mapping for the CVS-specific CVSEditors command was changed to
<br>'&lt;leader&gt;cE'.
<br>
<br>Made VCSAnnotate accept parameters to pass to the underlying VCS.
<br>
<br>Made error messages for operations on non-versioned files more consistent.
<br>
<br>Added check to disable individual VCS extension plugins.</td>
+    <td class="rowodd" valign="top" width="2000">Fixed following commands (broken in Beta 12):
<br>&nbsp;&nbsp;VCSLock
<br>&nbsp;&nbsp;VCSRevert
<br>&nbsp;&nbsp;VCSUnlock
<br>&nbsp;&nbsp;VCSUpdate</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6761">vcscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>beta11</b></td>
-    <td class="roweven" valign="top" nowrap><i>2007-02-20</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6814">vcscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>beta12</b></td>
+    <td class="roweven" valign="top" nowrap><i>2007-02-28</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Added VCSCommandSVNDiffExt option to allow external diff applications.
<br>Added VCSDelete command.
<br>Added pass-through parameters to VCS Add, Delete, Log, Status, Lock, and Unlock commands (extra parameters to the command are given to the underlying VCS command).</td>
+    <td class="roweven" valign="top" width="2000">Added SVK support.
<br>
<br>Replaced SVN-specific command SVNInfo with VCSInfo, which is defined for SVK
<br>and SVN.&nbsp;&nbsp;This is mapped to '&lt;leader&gt;ci' by default; as a consequence, the
<br>default mapping for the CVS-specific CVSEditors command was changed to
<br>'&lt;leader&gt;cE'.
<br>
<br>Made VCSAnnotate accept parameters to pass to the underlying VCS.
<br>
<br>Made error messages for operations on non-versioned files more consistent.
<br>
<br>Added check to disable individual VCS extension plugins.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6368">vcscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>Beta10</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2006-11-02</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6761">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>beta11</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2007-02-20</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Changed file type of commit log buffers to 'commitlog' (from 'commit log') to avoid FileType errors.
<br>
<br>Added 'VCSCommandSVNDiffOpt' to pass options to the svn diff -x parameter.</td>
+    <td class="rowodd" valign="top" width="2000">Added VCSCommandSVNDiffExt option to allow external diff applications.
<br>Added VCSDelete command.
<br>Added pass-through parameters to VCS Add, Delete, Log, Status, Lock, and Unlock commands (extra parameters to the command are given to the underlying VCS command).</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6160">vcscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>Beta9</b></td>
-    <td class="roweven" valign="top" nowrap><i>2006-09-11</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6368">vcscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>Beta10</b></td>
+    <td class="roweven" valign="top" nowrap><i>2006-11-02</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Added 'VCSCommandResultBufferNameExtension' option for adding a custom extension to the VCS output buffer names.&nbsp;&nbsp;This is intended to help users experiencing issues due to autocommands and other settings that depend on buffer name.
<br>
<br>Added 'VCSCommandResultBufferNameFunction' option for completely over-riding the procedure for generating the result buffer names.</td>
+    <td class="roweven" valign="top" width="2000">Changed file type of commit log buffers to 'commitlog' (from 'commit log') to avoid FileType errors.
<br>
<br>Added 'VCSCommandSVNDiffOpt' to pass options to the svn diff -x parameter.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6070">vcscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>Beta8</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2006-08-14</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6160">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>Beta9</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2006-09-11</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Changed behavior of plugin within Explorer/netrw -style directory buffers.&nbsp;&nbsp;Commands within such a buffer now act as though invoked on that directory, and so affect all files (and subdirectories), regardless of where the cursor is within the directory buffer.</td>
+    <td class="rowodd" valign="top" width="2000">Added 'VCSCommandResultBufferNameExtension' option for adding a custom extension to the VCS output buffer names.&nbsp;&nbsp;This is intended to help users experiencing issues due to autocommands and other settings that depend on buffer name.
<br>
<br>Added 'VCSCommandResultBufferNameFunction' option for completely over-riding the procedure for generating the result buffer names.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6055">vcscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>Beta5</b></td>
-    <td class="roweven" valign="top" nowrap><i>2006-08-09</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6070">vcscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>Beta8</b></td>
+    <td class="roweven" valign="top" nowrap><i>2006-08-14</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Corrected shortcut help text in commit message buffer.</td>
+    <td class="roweven" valign="top" width="2000">Changed behavior of plugin within Explorer/netrw -style directory buffers.&nbsp;&nbsp;Commands within such a buffer now act as though invoked on that directory, and so affect all files (and subdirectories), regardless of where the cursor is within the directory buffer.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6054">vcscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>Beta4</b></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6055">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>Beta5</b></td>
     <td class="rowodd" valign="top" nowrap><i>2006-08-09</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Changed default mappings back to those from cvscommand (starting with
<br>'&lt;Leader&gt;c' instead of '&lt;Leader&gt;v'.&nbsp;&nbsp;This is to avoid conflict with existing plugins using the '&lt;Leader&gt;v' prefix.&nbsp;&nbsp;Please note that the mappings can still be overridden by the user using &lt;Plug&gt; mappings.&nbsp;&nbsp;Please consult the documentation for more information.
<br>
<br>Removed special characters other than parentheses from output buffer names.&nbsp;&nbsp;This is to address buffer name problems on Windows.
<br></td>
+    <td class="rowodd" valign="top" width="2000">Corrected shortcut help text in commit message buffer.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6040">vcscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>Beta3</b></td>
-    <td class="roweven" valign="top" nowrap><i>2006-08-04</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6054">vcscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>Beta4</b></td>
+    <td class="roweven" valign="top" nowrap><i>2006-08-09</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Initial public release of vcscommand (based on cvscommand) to integrate subversion (SVN) and utilize VIM 7.0 features.</td>
+    <td class="roweven" valign="top" width="2000">Changed default mappings back to those from cvscommand (starting with
<br>'&lt;Leader&gt;c' instead of '&lt;Leader&gt;v'.&nbsp;&nbsp;This is to avoid conflict with existing plugins using the '&lt;Leader&gt;v' prefix.&nbsp;&nbsp;Please note that the mappings can still be overridden by the user using &lt;Plug&gt; mappings.&nbsp;&nbsp;Please consult the documentation for more information.
<br>
<br>Removed special characters other than parentheses from output buffer names.&nbsp;&nbsp;This is to address buffer name problems on Windows.
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=5302">cvscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.76</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2006-02-22</i></td>
-    <td class="rowodd" valign="top" nowrap>6.0</td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6040">vcscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>Beta3</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2006-08-04</i></td>
+    <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Added optional direct specification of log message on :CVSCommit command (to avoid using the log message buffer).&nbsp;&nbsp;Usage:
<br>
<br>:CVSCommit &lt;log message text here&gt;</td>
+    <td class="rowodd" valign="top" width="2000">Initial public release of vcscommand (based on cvscommand) to integrate subversion (SVN) and utilize VIM 7.0 features.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=5208">cvscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.75</b></td>
-    <td class="roweven" valign="top" nowrap><i>2006-02-13</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=5302">cvscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.76</b></td>
+    <td class="roweven" valign="top" nowrap><i>2006-02-22</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Forced file changed check whenever the original CVS file could have changed, even in split window environments (per Luca Gerli).</td>
+    <td class="roweven" valign="top" width="2000">Added optional direct specification of log message on :CVSCommit command (to avoid using the log message buffer).&nbsp;&nbsp;Usage:
<br>
<br>:CVSCommit &lt;log message text here&gt;</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=5069">cvscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.74</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2006-02-06</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=5208">cvscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.75</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2006-02-13</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">* Added ability to use CVSCommand functions / hotkeys on directory listing buffers, specifically the file explorer.
<br>* CVSAnnotate:&nbsp;&nbsp;Previously, if CVSAnnotate was invoked on a CVSAnnotate buffer, the new annotate buffer would go to the version just prior to the one on the current line.&nbsp;&nbsp;Now, the new buffer uses the version on the current line.&nbsp;&nbsp;To obtain the old behavior, set CVSCommandAnnotateParent to a non-zero value.&nbsp;&nbsp;The header lines resulting from the cvs annotate command are now trimmed.&nbsp;&nbsp;No attempt is made to jump to the 'correct' line in a CVSAnnotate buffer, as it is unlikely to be the correct line anyway.
<br></td>
+    <td class="rowodd" valign="top" width="2000">Forced file changed check whenever the original CVS file could have changed, even in split window environments (per Luca Gerli).</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=4999">cvscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.73</b></td>
-    <td class="roweven" valign="top" nowrap><i>2006-01-23</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=5069">cvscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.74</b></td>
+    <td class="roweven" valign="top" nowrap><i>2006-02-06</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Fixed typo in sample map in documentation per Luca Gerli.</td>
+    <td class="roweven" valign="top" width="2000">* Added ability to use CVSCommand functions / hotkeys on directory listing buffers, specifically the file explorer.
<br>* CVSAnnotate:&nbsp;&nbsp;Previously, if CVSAnnotate was invoked on a CVSAnnotate buffer, the new annotate buffer would go to the version just prior to the one on the current line.&nbsp;&nbsp;Now, the new buffer uses the version on the current line.&nbsp;&nbsp;To obtain the old behavior, set CVSCommandAnnotateParent to a non-zero value.&nbsp;&nbsp;The header lines resulting from the cvs annotate command are now trimmed.&nbsp;&nbsp;No attempt is made to jump to the 'correct' line in a CVSAnnotate buffer, as it is unlikely to be the correct line anyway.
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=4987">cvscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.72</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2006-01-17</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=4999">cvscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.73</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2006-01-23</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Moved version check to after the loaded_cvscommand check.</td>
+    <td class="rowodd" valign="top" width="2000">Fixed typo in sample map in documentation per Luca Gerli.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=4798">cvscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.71</b></td>
-    <td class="roweven" valign="top" nowrap><i>2005-11-22</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=4987">cvscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.72</b></td>
+    <td class="roweven" valign="top" nowrap><i>2006-01-17</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Restored CVSVimDiffFinish user autocommand which executes after a CVSVimDiff
<br>(in order to allow customization of window placement, etc).
<br></td>
+    <td class="roweven" valign="top" width="2000">Moved version check to after the loaded_cvscommand check.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=4728">cvscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.70</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2005-11-10</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=4798">cvscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.71</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2005-11-22</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Fixes bug that resulted in working directory change.
<br>
<br>Displays warning to user and will not load if running on VIM earlier than 6.2.</td>
+    <td class="rowodd" valign="top" width="2000">Restored CVSVimDiffFinish user autocommand which executes after a CVSVimDiff
<br>(in order to allow customization of window placement, etc).
<br></td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=4403">cvscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.68</b></td>
-    <td class="roweven" valign="top" nowrap><i>2005-06-30</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=4728">cvscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.70</b></td>
+    <td class="roweven" valign="top" nowrap><i>2005-11-10</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Fixed bug with autochdir and CVSCommit.
<br>(Repackaged from previous upload, which had new script in wrong place and old script in right place).du</td>
+    <td class="roweven" valign="top" width="2000">Fixes bug that resulted in working directory change.
<br>
<br>Displays warning to user and will not load if running on VIM earlier than 6.2.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=3491">cvscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.67</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2004-09-27</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=4403">cvscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.68</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2005-06-30</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Corrected b:CVSRepository variable for CVSAdd'd files.&nbsp;&nbsp;This will fix status line display for these files, if the default (cvs) status line is used.</td>
+    <td class="rowodd" valign="top" width="2000">Fixed bug with autochdir and CVSCommit.
<br>(Repackaged from previous upload, which had new script in wrong place and old script in right place).du</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=3450">cvscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.66</b></td>
-    <td class="roweven" valign="top" nowrap><i>2004-09-14</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=3491">cvscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.67</b></td>
+    <td class="roweven" valign="top" nowrap><i>2004-09-27</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Changed maintainer email address.</td>
+    <td class="roweven" valign="top" width="2000">Corrected b:CVSRepository variable for CVSAdd'd files.&nbsp;&nbsp;This will fix status line display for these files, if the default (cvs) status line is used.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=3294">cvscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.65</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2004-08-02</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=3450">cvscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.66</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2004-09-14</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Added instructions for integrating with SSH.
<br>
<br>Added CVSCommandCVSExec option to specify cvs executable path.
<br>
<br>Added CVSBufferSetup user event.
<br></td>
+    <td class="rowodd" valign="top" width="2000">Changed maintainer email address.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=3018">cvscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.64</b></td>
-    <td class="roweven" valign="top" nowrap><i>2004-05-12</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=3294">cvscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.65</b></td>
+    <td class="roweven" valign="top" nowrap><i>2004-08-02</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Delete folds created by vimdiff mode in CVSVimDiff if the original window used manual folds, when it is restored.
<br>
<br>Always set scrollbind in the result window of a CVSVimDiff in order to combat the effects of splitting windows resetting scrollbind.&nbsp;&nbsp;Please let me know if this causes anyone trouble.</td>
+    <td class="roweven" valign="top" width="2000">Added instructions for integrating with SSH.
<br>
<br>Added CVSCommandCVSExec option to specify cvs executable path.
<br>
<br>Added CVSBufferSetup user event.
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=2126">cvscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.63</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2003-07-03</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=3018">cvscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.64</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2004-05-12</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Bugfix release.&nbsp;&nbsp;Buffers start with 1, not 0.&nbsp;&nbsp;Switch to the original buffer first before destorying CVS buffers in
<br>CVSGotoOriginal! in order to preserve window layout.
<br></td>
+    <td class="rowodd" valign="top" width="2000">Delete folds created by vimdiff mode in CVSVimDiff if the original window used manual folds, when it is restored.
<br>
<br>Always set scrollbind in the result window of a CVSVimDiff in order to combat the effects of splitting windows resetting scrollbind.&nbsp;&nbsp;Please let me know if this causes anyone trouble.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=2123">cvscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.62</b></td>
-    <td class="roweven" valign="top" nowrap><i>2003-07-02</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=2126">cvscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.63</b></td>
+    <td class="roweven" valign="top" nowrap><i>2003-07-03</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Added b:CVSRepository as a standard variable if buffer setup is enabled.
<br>
<br>Changed sample status line to display the repository version number if it differs from
<br>the working version number.
<br>
<br>Added recursive annotation functionality.
<br>
<br>Silenced text puts to set up the CVSCommit buffer.
<br>
<br>Added CVSVimDiffFinish event for window placement customization.
<br>
<br>Implemented the remove-all-CVS-buffers aspect of CVSGotoOriginal! in a slightly
<br>more sane way.
<br>
<br>Added 'foldenable' to the list of restored options for
<br>CVSVimDiff.
<br></td>
+    <td class="roweven" valign="top" width="2000">Bugfix release.&nbsp;&nbsp;Buffers start with 1, not 0.&nbsp;&nbsp;Switch to the original buffer first before destorying CVS buffers in
<br>CVSGotoOriginal! in order to preserve window layout.
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=1949">cvscommand.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.54</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2003-04-28</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=2123">cvscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.62</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2003-07-02</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Added recognition of numerical tags for use as sticky tags.</td>
+    <td class="rowodd" valign="top" width="2000">Added b:CVSRepository as a standard variable if buffer setup is enabled.
<br>
<br>Changed sample status line to display the repository version number if it differs from
<br>the working version number.
<br>
<br>Added recursive annotation functionality.
<br>
<br>Silenced text puts to set up the CVSCommit buffer.
<br>
<br>Added CVSVimDiffFinish event for window placement customization.
<br>
<br>Implemented the remove-all-CVS-buffers aspect of CVSGotoOriginal! in a slightly
<br>more sane way.
<br>
<br>Added 'foldenable' to the list of restored options for
<br>CVSVimDiff.
<br></td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=1929">cvscommand.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.52</b></td>
-    <td class="roweven" valign="top" nowrap><i>2003-04-18</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=1949">cvscommand.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.54</b></td>
+    <td class="roweven" valign="top" nowrap><i>2003-04-28</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
-    <td class="roweven" valign="top" width="2000">Added the CVSGotoOriginal[!] command and mappings (&lt;Leader&gt;cg and &lt;Leader&gt; cG for with and without '!', respectively).&nbsp;&nbsp;This command jumps to the source buffer if the current buffer is a CVS output buffer.&nbsp;&nbsp;The '!' also closes all CVS output buffer for the given source buffer.</td>
+    <td class="roweven" valign="top" width="2000">Added recognition of numerical tags for use as sticky tags.</td>
+</tr>
+<tr>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=1929">cvscommand.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.52</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2003-04-18</i></td>
+    <td class="rowodd" valign="top" nowrap>6.0</td>
+    <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=241">Bob Hiestand</a></i></td>
+    <td class="rowodd" valign="top" width="2000">Added the CVSGotoOriginal[!] command and mappings (&lt;Leader&gt;cg and &lt;Leader&gt; cG for with and without '!', respectively).&nbsp;&nbsp;This command jumps to the source buffer if the current buffer is a CVS output buffer.&nbsp;&nbsp;The '!' also closes all CVS output buffer for the given source buffer.</td>
 </tr>
 </table>
 <!-- finish off the framework -->
@@ -568,7 +605,7 @@ Click on the package to download.
           </td>
 
     <td align="right" valign="top">
-      		<a href="http://sourceforge.net" rel="nofollow"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=8&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
+      		<a href="http://sourceforge.net/projects/vim" rel="nofollow"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=8&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
     </td>
 
     <td><img src="/images/spacer.gif" width="5" height="1" alt=""></td>
diff --git a/plugin/vcsbzr.vim b/plugin/vcsbzr.vim
new file mode 100644
index 0000000..60dc455
--- /dev/null
+++ b/plugin/vcsbzr.vim
@@ -0,0 +1,254 @@
+" vim600: set foldmethod=marker:
+"
+" BZR extension for VCSCommand.
+"
+" Version:       VCS development
+" Maintainer:    Bob Hiestand <bob.hiestand at gmail.com>
+" License:
+" Copyright (c) 2009 Bob Hiestand
+"
+" Permission is hereby granted, free of charge, to any person obtaining a copy
+" of this software and associated documentation files (the "Software"), to
+" deal in the Software without restriction, including without limitation the
+" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+" sell copies of the Software, and to permit persons to whom the Software is
+" furnished to do so, subject to the following conditions:
+"
+" The above copyright notice and this permission notice shall be included in
+" all copies or substantial portions of the Software.
+"
+" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+" IN THE SOFTWARE.
+"
+" Section: Documentation {{{1
+"
+" Options documentation: {{{2
+"
+" VCSCommandBZRExec
+"   This variable specifies the BZR executable.  If not set, it defaults to
+"   'bzr' executed from the user's executable path.
+
+" Section: Plugin header {{{1
+
+if v:version < 700
+  echohl WarningMsg|echomsg 'VCSCommand requires at least VIM 7.0'|echohl None
+  finish
+endif
+
+let s:save_cpo=&cpo
+set cpo&vim
+
+runtime plugin/vcscommand.vim
+
+if !executable(VCSCommandGetOption('VCSCommandBZRExec', 'bzr'))
+  " BZR is not installed
+  finish
+endif
+
+" Section: Variable initialization {{{1
+
+let s:bzrFunctions = {}
+
+" Section: Utility functions {{{1
+
+" Function: s:DoCommand(cmd, cmdName, statusText) {{{2
+" Wrapper to VCSCommandDoCommand to add the name of the BZR executable to the
+" command argument.
+function! s:DoCommand(cmd, cmdName, statusText, options)
+  if VCSCommandGetVCSType(expand('%')) == 'BZR'
+    let fullCmd = VCSCommandGetOption('VCSCommandBZRExec', 'bzr') . ' ' . a:cmd
+    return VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
+  else
+    throw 'BZR VCSCommand plugin called on non-BZR item.'
+  endif
+endfunction
+
+" Section: VCS function implementations {{{1
+
+" Function: s:bzrFunctions.Identify(buffer) {{{2
+function! s:bzrFunctions.Identify(buffer)
+  let fileName = resolve(bufname(a:buffer))
+  let statusText = system(VCSCommandGetOption('VCSCommandBZRExec', 'bzr') . ' info "' . fileName . '"')
+  if(v:shell_error)
+    return 0
+  else
+    return 1
+  endif
+endfunction
+
+" Function: s:bzrFunctions.Add() {{{2
+function! s:bzrFunctions.Add(argList)
+  return s:DoCommand(join(['add'] + a:argList, ' '), 'add', join(a:argList, ' '), {})
+endfunction
+
+" Function: s:bzrFunctions.Annotate(argList) {{{2
+function! s:bzrFunctions.Annotate(argList)
+  if len(a:argList) == 0
+    if &filetype == 'BZRAnnotate'
+      " Perform annotation of the version indicated by the current line.
+      let caption = matchstr(getline('.'),'\v^\s+\zs\d+')
+      let options = ' -r' . caption
+    else
+      let caption = ''
+      let options = ''
+    endif
+  elseif len(a:argList) == 1 && a:argList[0] !~ '^-'
+    let caption = a:argList[0]
+    let options = ' -r' . caption
+  else
+    let caption = join(a:argList, ' ')
+    let options = ' ' . caption
+  endif
+
+  let resultBuffer = s:DoCommand('blame' . options, 'annotate', caption, {})
+  if resultBuffer > 0
+    normal 1G2dd
+    set filetype=BZRAnnotate
+  endif
+  return resultBuffer
+endfunction
+
+" Function: s:bzrFunctions.Commit(argList) {{{2
+function! s:bzrFunctions.Commit(argList)
+  let resultBuffer = s:DoCommand('commit -F "' . a:argList[0] . '"', 'commit', '', {})
+  if resultBuffer == 0
+    echomsg 'No commit needed.'
+  endif
+endfunction
+
+" Function: s:bzrFunctions.Delete() {{{2
+function! s:bzrFunctions.Delete(argList)
+  return s:DoCommand(join(['rm'] + a:argList, ' '), 'rm', join(a:argList, ' '), {})
+endfunction
+
+" Function: s:bzrFunctions.Diff(argList) {{{2
+function! s:bzrFunctions.Diff(argList)
+  if len(a:argList) == 0
+    let revOptions = []
+    let caption = ''
+  elseif len(a:argList) <= 2 && match(a:argList, '^-') == -1
+    let revOptions = ['-r' . join(a:argList, '..')]
+    let caption = '(' . a:argList[0] . ' : ' . get(a:argList, 1, 'current') . ')'
+  else
+    " Pass-through
+    let caption = join(a:argList, ' ')
+    let revOptions = a:argList
+  endif
+
+  let resultBuffer = s:DoCommand(join(['diff'] + revOptions), 'diff', caption, {'allowNonZeroExit': 1})
+  if resultBuffer > 0
+    set filetype=diff
+  else
+    echomsg 'No differences found'
+  endif
+  return resultBuffer
+endfunction
+
+" Function: s:bzrFunctions.GetBufferInfo() {{{2
+" Provides version control details for the current file.  Current version
+" number and current repository version number are required to be returned by
+" the vcscommand plugin.
+" Returns: List of results:  [revision, repository]
+
+function! s:bzrFunctions.GetBufferInfo()
+  let originalBuffer = VCSCommandGetOriginalBuffer(bufnr('%'))
+  let fileName = resolve(bufname(originalBuffer))
+  let statusText = system(VCSCommandGetOption('VCSCommandBZRExec', 'bzr') . ' status -S "' . fileName . '"')
+  let revision = system(VCSCommandGetOption('VCSCommandBZRExec', 'bzr') . ' revno "' . fileName . '"')
+  if(v:shell_error)
+    return []
+  endif
+
+  " File not under BZR control.
+  if statusText =~ '^?'
+    return ['Unknown']
+  endif
+
+  let [flags, repository] = matchlist(statusText, '^\(.\{3}\)\s\+\(\S\+\)')[1:2]
+  if revision == ''
+    " Error
+    return ['Unknown']
+  elseif flags =~ '^A'
+    return ['New', 'New']
+  else
+    return [revision, repository]
+  endif
+endfunction
+
+" Function: s:bzrFunctions.Info(argList) {{{2
+function! s:bzrFunctions.Info(argList)
+  return s:DoCommand(join(['version-info'] + a:argList, ' '), 'version-info', join(a:argList, ' '), {})
+endfunction
+
+" Function: s:bzrFunctions.Lock(argList) {{{2
+function! s:bzrFunctions.Lock(argList)
+  echomsg 'bzr lock is not necessary'
+endfunction
+
+" Function: s:bzrFunctions.Log() {{{2
+function! s:bzrFunctions.Log(argList)
+  if len(a:argList) == 0
+    let options = []
+    let caption = ''
+  elseif len(a:argList) <= 2 && match(a:argList, '^-') == -1
+    let options = ['-r' . join(a:argList, ':')]
+    let caption = options[0]
+  else
+    " Pass-through
+    let options = a:argList
+    let caption = join(a:argList, ' ')
+  endif
+
+  let resultBuffer = s:DoCommand(join(['log', '-v'] + options), 'log', caption, {})
+  return resultBuffer
+endfunction
+
+" Function: s:bzrFunctions.Revert(argList) {{{2
+function! s:bzrFunctions.Revert(argList)
+  return s:DoCommand('revert', 'revert', '', {})
+endfunction
+
+" Function: s:bzrFunctions.Review(argList) {{{2
+function! s:bzrFunctions.Review(argList)
+  if len(a:argList) == 0
+    let versiontag = '(current)'
+    let versionOption = ''
+  else
+    let versiontag = a:argList[0]
+    let versionOption = ' -r ' . versiontag . ' '
+  endif
+
+  let resultBuffer = s:DoCommand('cat' . versionOption, 'review', versiontag, {})
+  if resultBuffer > 0
+    let &filetype=getbufvar(b:VCSCommandOriginalBuffer, '&filetype')
+  endif
+  return resultBuffer
+endfunction
+
+" Function: s:bzrFunctions.Status(argList) {{{2
+function! s:bzrFunctions.Status(argList)
+  let options = ['-S']
+  if len(a:argList) == 0
+    let options = a:argList
+  endif
+  return s:DoCommand(join(['status'] + options, ' '), 'status', join(options, ' '), {})
+endfunction
+
+" Function: s:bzrFunctions.Unlock(argList) {{{2
+function! s:bzrFunctions.Unlock(argList)
+  echomsg 'bzr unlock is not necessary'
+endfunction
+" Function: s:bzrFunctions.Update(argList) {{{2
+function! s:bzrFunctions.Update(argList)
+  return s:DoCommand('update', 'update', '', {})
+endfunction
+
+" Section: Plugin Registration {{{1
+call VCSCommandRegisterModule('BZR', expand('<sfile>'), s:bzrFunctions, [])
+
+let &cpo = s:save_cpo
diff --git a/plugin/vcscommand.vim b/plugin/vcscommand.vim
index 3463ea3..2070e1a 100644
--- a/plugin/vcscommand.vim
+++ b/plugin/vcscommand.vim
@@ -3,8 +3,8 @@
 " Vim plugin to assist in working with files under control of various Version
 " Control Systems, such as CVS, SVN, SVK, and git.
 "
-" Version:	Beta 28
-" Maintainer:	Bob Hiestand <bob.hiestand at gmail.com>
+" Version:       1.99.31
+" Maintainer:    Bob Hiestand <bob.hiestand at gmail.com>
 " License:
 " Copyright (c) 2008 Bob Hiestand
 "
@@ -44,7 +44,7 @@
 "
 " VCSAdd           Adds the current file to source control.
 "
-" VCSAnnotate      Displays the current file with each line annotated with the
+" VCSAnnotate[!]   Displays the current file with each line annotated with the
 "                  version in which it was most recently changed.  If an
 "                  argument is given, the argument is used as a revision
 "                  number to display.  If not given an argument, it uses the
@@ -52,6 +52,10 @@
 "                  Additionally, if the current buffer is a VCSAnnotate buffer
 "                  already, the version number on the current line is used.
 "
+"                  If '!' is used, the view of the annotated buffer is split
+"                  so that the annotation is in a separate window from the
+"                  content, and each is highlighted separately.
+"
 " VCSBlame         Alias for 'VCSAnnotate'.
 "
 " VCSCommit[!]     Commits changes to the current file to source control.
@@ -152,6 +156,7 @@
 "
 "   <Leader>ca VCSAdd
 "   <Leader>cn VCSAnnotate
+"   <Leader>cN VCSAnnotate!
 "   <Leader>cc VCSCommit
 "   <Leader>cD VCSDelete
 "   <Leader>cd VCSDiff
@@ -251,6 +256,14 @@
 "   side-by-side.  If not set, it defaults to 'horizontal' for all but
 "   VCSVimDiff windows.
 "
+" VCSCommandVCSTypeOverride
+"   This variable allows the VCS type detection to be overridden on a
+"   path-by-path basis.  The value of this variable is expected to be a List
+"   of Lists.  Each high-level List item is a List containing two elements.
+"   The first element is a regular expression that will be matched against the
+"   full file name of a given buffer.  If it matches, the second element will
+"   be used as the VCS type.
+"
 " Event documentation {{{2
 "   For additional customization, VCSCommand.vim uses User event autocommand
 "   hooks.  Each event is in the VCSCommand group, and different patterns
@@ -472,15 +485,6 @@ endfunction
 function! s:EditFile(command, originalBuffer, statusText)
 	let vcsType = getbufvar(a:originalBuffer, 'VCSCommandVCSType')
 
-	let nameExtension = VCSCommandGetOption('VCSCommandResultBufferNameExtension', '')
-	if nameExtension == ''
-		let nameFunction = VCSCommandGetOption('VCSCommandResultBufferNameFunction', 's:GenerateResultBufferName')
-	else
-		let nameFunction = VCSCommandGetOption('VCSCommandResultBufferNameFunction', 's:GenerateResultBufferNameWithExtension')
-	endif
-
-	let resultBufferName = call(nameFunction, [a:command, a:originalBuffer, vcsType, a:statusText])
-
 	" Protect against useless buffer set-up
 	let s:isEditFileRunning += 1
 	try
@@ -495,28 +499,45 @@ function! s:EditFile(command, originalBuffer, statusText)
 
 		enew
 
-		let b:VCSCommandCommand = a:command
-		let b:VCSCommandOriginalBuffer = a:originalBuffer
-		let b:VCSCommandSourceFile = bufname(a:originalBuffer)
-		let b:VCSCommandVCSType = vcsType
-
-		setlocal buftype=nofile
-		setlocal noswapfile
-		let &filetype = vcsType . a:command
+		call s:SetupScratchBuffer(a:command, vcsType, a:originalBuffer, a:statusText)
 
-		if a:statusText != ''
-			let b:VCSCommandStatusText = a:statusText
-		endif
-
-		if VCSCommandGetOption('VCSCommandDeleteOnHide', 0)
-			setlocal bufhidden=delete
-		endif
-		silent noautocmd file `=resultBufferName`
 	finally
 		let s:isEditFileRunning -= 1
 	endtry
 endfunction
 
+" Function: s:SetupScratchBuffer(command, vcsType, originalBuffer, statusText) {{{2
+" Creates convenience buffer variables and the name of a vcscommand result
+" buffer.
+
+function! s:SetupScratchBuffer(command, vcsType, originalBuffer, statusText)
+	let nameExtension = VCSCommandGetOption('VCSCommandResultBufferNameExtension', '')
+	if nameExtension == ''
+		let nameFunction = VCSCommandGetOption('VCSCommandResultBufferNameFunction', 's:GenerateResultBufferName')
+	else
+		let nameFunction = VCSCommandGetOption('VCSCommandResultBufferNameFunction', 's:GenerateResultBufferNameWithExtension')
+	endif
+
+	let name = call(nameFunction, [a:command, a:originalBuffer, a:vcsType, a:statusText])
+
+	let b:VCSCommandCommand = a:command
+	let b:VCSCommandOriginalBuffer = a:originalBuffer
+	let b:VCSCommandSourceFile = bufname(a:originalBuffer)
+	let b:VCSCommandVCSType = a:vcsType
+	if a:statusText != ''
+		let b:VCSCommandStatusText = a:statusText
+	endif
+
+	setlocal buftype=nofile
+	setlocal noswapfile
+	let &filetype = a:vcsType . a:command
+
+	if VCSCommandGetOption('VCSCommandDeleteOnHide', 0)
+		setlocal bufhidden=delete
+	endif
+	silent noautocmd file `=name`
+endfunction
+
 " Function: s:SetupBuffer() {{{2
 " Attempts to set the b:VCSCommandBufferInfo variable
 
@@ -659,6 +680,43 @@ endfunction
 
 " Section: Generic VCS command functions {{{1
 
+" Function: s:VCSAnnotate(...) {{{2
+function! s:VCSAnnotate(bang, ...)
+	try
+		let annotateBuffer = s:ExecuteVCSCommand('Annotate', a:000)
+		if annotateBuffer == -1
+			return -1
+		endif
+		if a:bang == '!' && VCSCommandGetOption('VCSCommandDisableSplitAnnotate', 0) == 0
+			let vcsType = VCSCommandGetVCSType(annotateBuffer)
+			let functionMap = s:plugins[vcsType][1]
+			let splitRegex = ''
+			if has_key(s:plugins[vcsType][1], 'AnnotateSplitRegex')
+				let splitRegex = s:plugins[vcsType][1]['AnnotateSplitRegex']
+			endif
+			let splitRegex = VCSCommandGetOption('VCSCommand' . vcsType . 'AnnotateSplitRegex', splitRegex)
+			if splitRegex == ''
+				return annotateBuffer
+			endif
+			let originalBuffer = VCSCommandGetOriginalBuffer(annotateBuffer)
+			let originalFileType = getbufvar(originalBuffer, '&ft')
+			let annotateFileType = getbufvar(annotateBuffer, '&ft')
+			execute "normal 0zR\<c-v>G/" . splitRegex . "/e\<cr>d"
+			call setbufvar('%', '&filetype', getbufvar(originalBuffer, '&filetype'))
+			set scrollbind
+			leftabove vert new
+			normal 0P
+			execute "normal" . col('$') . "\<c-w>|"
+			call s:SetupScratchBuffer('annotate', vcsType, originalBuffer, 'header')
+			wincmd l
+		endif
+		return annotateBuffer
+	catch
+		call s:ReportError(v:exception)
+		return -1
+	endtry
+endfunction
+
 " Function: s:VCSCommit() {{{2
 function! s:VCSCommit(bang, message)
 	try
@@ -903,6 +961,15 @@ function! VCSCommandGetVCSType(buffer)
 	if strlen(vcsType) > 0
 		return vcsType
 	endif
+	if exists("g:VCSCommandVCSTypeOverride")
+		let fullpath = fnamemodify(bufname(a:buffer), ':p')
+		for [path, vcsType] in g:VCSCommandVCSTypeOverride
+			if match(fullpath, path) > -1
+				call setbufvar(a:buffer, 'VCSCommandVCSType', vcsType)
+				return vcsType
+			endif
+		endfor
+	endif
 	let matches = []
 	for vcsType in keys(s:plugins)
 		let identified = s:plugins[vcsType][1].Identify(a:buffer)
@@ -1146,8 +1213,8 @@ endfunction
 " Section: Command definitions {{{1
 " Section: Primary commands {{{2
 com! -nargs=* VCSAdd call s:MarkOrigBufferForSetup(s:ExecuteVCSCommand('Add', [<f-args>]))
-com! -nargs=* VCSAnnotate call s:ExecuteVCSCommand('Annotate', [<f-args>])
-com! -nargs=* VCSBlame call s:ExecuteVCSCommand('Annotate', [<f-args>])
+com! -nargs=* -bang VCSAnnotate call s:VCSAnnotate(<q-bang>, <f-args>)
+com! -nargs=* -bang VCSBlame call s:VCSAnnotate(<q-bang>, <f-args>)
 com! -nargs=? -bang VCSCommit call s:VCSCommit(<q-bang>, <q-args>)
 com! -nargs=* VCSDelete call s:ExecuteVCSCommand('Delete', [<f-args>])
 com! -nargs=* VCSDiff call s:ExecuteVCSCommand('Diff', [<f-args>])
@@ -1183,6 +1250,7 @@ nnoremap <silent> <Plug>VCSLock :VCSLock<CR>
 nnoremap <silent> <Plug>VCSLog :VCSLog<CR>
 nnoremap <silent> <Plug>VCSRevert :VCSRevert<CR>
 nnoremap <silent> <Plug>VCSReview :VCSReview<CR>
+nnoremap <silent> <Plug>VCSSplitAnnotate :VCSAnnotate!<CR>
 nnoremap <silent> <Plug>VCSStatus :VCSStatus<CR>
 nnoremap <silent> <Plug>VCSUnlock :VCSUnlock<CR>
 nnoremap <silent> <Plug>VCSUpdate :VCSUpdate<CR>
@@ -1200,6 +1268,7 @@ let s:defaultMappings = [
 			\['i', 'VCSInfo'],
 			\['L', 'VCSLock'],
 			\['l', 'VCSLog'],
+			\['N', 'VCSSplitAnnotate'],
 			\['n', 'VCSAnnotate'],
 			\['q', 'VCSRevert'],
 			\['r', 'VCSReview'],
diff --git a/plugin/vcscvs.vim b/plugin/vcscvs.vim
index f2ff708..a548276 100644
--- a/plugin/vcscvs.vim
+++ b/plugin/vcscvs.vim
@@ -112,7 +112,17 @@ let s:cvsFunctions = {}
 function! s:DoCommand(cmd, cmdName, statusText, options)
 	if VCSCommandGetVCSType(expand('%')) == 'CVS'
 		let fullCmd = VCSCommandGetOption('VCSCommandCVSExec', 'cvs') . ' ' . a:cmd
-		return VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
+		let ret = VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
+
+		if ret > 0
+			if getline(line('$')) =~ '^cvs \w\+: closing down connection'
+				$d
+				1
+			endif
+
+		endif
+
+		return ret
 	else
 		throw 'CVS VCSCommand plugin called on non-CVS item.'
 	endif
@@ -391,6 +401,9 @@ function! s:CVSWatchers()
 	return s:DoCommand('watchers', 'cvswatchers', '', {})
 endfunction
 
+" Annotate setting {{{2
+let s:cvsFunctions.AnnotateSplitRegex = '): '
+
 " Section: Command definitions {{{1
 " Section: Primary commands {{{2
 com! CVSEdit call s:CVSEdit()
@@ -425,7 +438,6 @@ for [pluginName, commandText, shortCut] in mappingInfo
 endfor
 
 " Section: Menu items {{{1
-silent! aunmenu Plugin.VCS.CVS
 amenu <silent> &Plugin.VCS.CVS.&Edit       <Plug>CVSEdit
 amenu <silent> &Plugin.VCS.CVS.Ed&itors    <Plug>CVSEditors
 amenu <silent> &Plugin.VCS.CVS.Unedi&t     <Plug>CVSUnedit
diff --git a/plugin/vcsgit.vim b/plugin/vcsgit.vim
index 869a587..d2eb50f 100644
--- a/plugin/vcsgit.vim
+++ b/plugin/vcsgit.vim
@@ -251,6 +251,8 @@ function! s:gitFunctions.Update(argList)
 	throw "This command is not implemented for git because file-by-file update doesn't make much sense in that context.  If you have an idea for what it should do, please let me know."
 endfunction
 
+" Annotate setting {{{2
+let s:gitFunctions.AnnotateSplitRegex = ') '
 
 " Section: Plugin Registration {{{1
 call VCSCommandRegisterModule('git', expand('<sfile>'), s:gitFunctions, [])
diff --git a/plugin/vcssvk.vim b/plugin/vcshg.vim
similarity index 56%
copy from plugin/vcssvk.vim
copy to plugin/vcshg.vim
index f79f578..deff5cd 100644
--- a/plugin/vcssvk.vim
+++ b/plugin/vcshg.vim
@@ -1,11 +1,11 @@
 " vim600: set foldmethod=marker:
 "
-" SVK extension for VCSCommand.
+" Mercurial extension for VCSCommand.
 "
 " Version:       VCS development
 " Maintainer:    Bob Hiestand <bob.hiestand at gmail.com>
 " License:
-" Copyright (c) 2007 Bob Hiestand
+" Copyright (c) 2009 Bob Hiestand
 "
 " Permission is hereby granted, free of charge, to any person obtaining a copy
 " of this software and associated documentation files (the "Software"), to
@@ -29,9 +29,16 @@
 "
 " Options documentation: {{{2
 "
-" VCSCommandSVKExec
-"   This variable specifies the SVK executable.  If not set, it defaults to
-"   'svk' executed from the user's executable path.
+" VCSCommandHGExec
+"   This variable specifies the mercurial executable.  If not set, it defaults
+"   to 'hg' executed from the user's executable path.
+"
+" VCSCommandHGDiffExt
+"   This variable, if set, sets the external diff program used by Subversion.
+"
+" VCSCommandHGDiffOpt
+"   This variable, if set, determines the options passed to the hg diff
+"   command (such as 'u', 'w', or 'b').
 
 " Section: Plugin header {{{1
 
@@ -46,8 +53,8 @@ endif
 
 runtime plugin/vcscommand.vim
 
-if !executable(VCSCommandGetOption('VCSCommandSVKExec', 'svk'))
-	" SVK is not installed
+if !executable(VCSCommandGetOption('VCSCommandHGExec', 'hg'))
+	" HG is not installed
 	finish
 endif
 
@@ -56,49 +63,43 @@ set cpo&vim
 
 " Section: Variable initialization {{{1
 
-let s:svkFunctions = {}
+let s:hgFunctions = {}
 
 " Section: Utility functions {{{1
 
 " Function: s:DoCommand(cmd, cmdName, statusText, options) {{{2
-" Wrapper to VCSCommandDoCommand to add the name of the SVK executable to the
+" Wrapper to VCSCommandDoCommand to add the name of the HG executable to the
 " command argument.
 function! s:DoCommand(cmd, cmdName, statusText, options)
-	if VCSCommandGetVCSType(expand('%')) == 'SVK'
-		let fullCmd = VCSCommandGetOption('VCSCommandSVKExec', 'svk') . ' ' . a:cmd
+	if VCSCommandGetVCSType(expand('%')) == 'HG'
+		let fullCmd = VCSCommandGetOption('VCSCommandHGExec', 'hg') . ' ' . a:cmd
 		return VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
 	else
-		throw 'SVK VCSCommand plugin called on non-SVK item.'
+		throw 'HG VCSCommand plugin called on non-HG item.'
 	endif
 endfunction
 
 " Section: VCS function implementations {{{1
 
-" Function: s:svkFunctions.Identify(buffer) {{{2
-function! s:svkFunctions.Identify(buffer)
-	let fileName = resolve(bufname(a:buffer))
-	if isdirectory(fileName)
-		let directoryName = fileName
-	else
-		let directoryName = fnamemodify(fileName, ':p:h')
-	endif
-	let statusText = system(VCSCommandGetOption('VCSCommandSVKExec', 'svk') . ' info "' . directoryName . '"')
+" Function: s:hgFunctions.Identify(buffer) {{{2
+function! s:hgFunctions.Identify(buffer)
+	call system(VCSCommandGetOption('VCSCommandHGExec', 'hg') . ' root')
 	if(v:shell_error)
 		return 0
 	else
-		return 1
+		return g:VCSCOMMAND_IDENTIFY_INEXACT
 	endif
 endfunction
 
-" Function: s:svkFunctions.Add() {{{2
-function! s:svkFunctions.Add(argList)
+" Function: s:hgFunctions.Add() {{{2
+function! s:hgFunctions.Add(argList)
 	return s:DoCommand(join(['add'] + a:argList, ' '), 'add', join(a:argList, ' '), {})
 endfunction
 
-" Function: s:svkFunctions.Annotate(argList) {{{2
-function! s:svkFunctions.Annotate(argList)
+" Function: s:hgFunctions.Annotate(argList) {{{2
+function! s:hgFunctions.Annotate(argList)
 	if len(a:argList) == 0
-		if &filetype == 'SVKAnnotate'
+		if &filetype == 'HGAnnotate'
 			" Perform annotation of the version indicated by the current line.
 			let caption = matchstr(getline('.'),'\v^\s+\zs\d+')
 			let options = ' -r' . caption
@@ -116,29 +117,28 @@ function! s:svkFunctions.Annotate(argList)
 
 	let resultBuffer = s:DoCommand('blame' . options, 'annotate', caption, {})
 	if resultBuffer > 0
-		normal 1G2dd
-		set filetype=SVKAnnotate
+		set filetype=HGAnnotate
 	endif
 	return resultBuffer
 endfunction
 
-" Function: s:svkFunctions.Commit(argList) {{{2
-function! s:svkFunctions.Commit(argList)
-	let resultBuffer = s:DoCommand('commit -F "' . a:argList[0] . '"', 'commit', '', {})
+" Function: s:hgFunctions.Commit(argList) {{{2
+function! s:hgFunctions.Commit(argList)
+	let resultBuffer = s:DoCommand('commit -l "' . a:argList[0] . '"', 'commit', '', {})
 	if resultBuffer == 0
 		echomsg 'No commit needed.'
 	endif
 endfunction
 
-" Function: s:svkFunctions.Delete() {{{2
-function! s:svkFunctions.Delete(argList)
-	return s:DoCommand(join(['delete'] + a:argList, ' '), 'delete', join(a:argList, ' '), {})
+" Function: s:hgFunctions.Delete() {{{2
+function! s:hgFunctions.Delete(argList)
+	return s:DoCommand(join(['remove'] + a:argList, ' '), 'remove', join(a:argList, ' '), {})
 endfunction
 
-" Function: s:svkFunctions.Diff(argList) {{{2
-function! s:svkFunctions.Diff(argList)
+" Function: s:hgFunctions.Diff(argList) {{{2
+function! s:hgFunctions.Diff(argList)
 	if len(a:argList) == 0
-		let revOptions = [] 
+		let revOptions = []
 		let caption = ''
 	elseif len(a:argList) <= 2 && match(a:argList, '^-') == -1
 		let revOptions = ['-r' . join(a:argList, ':')]
@@ -149,57 +149,73 @@ function! s:svkFunctions.Diff(argList)
 		let revOptions = a:argList
 	endif
 
-	let resultBuffer = s:DoCommand(join(['diff'] + revOptions), 'diff', caption, {})
+	let hgDiffExt = VCSCommandGetOption('VCSCommandHGDiffExt', '')
+	if hgDiffExt == ''
+		let diffExt = []
+	else
+		let diffExt = ['--diff-cmd ' . hgDiffExt]
+	endif
+
+	let hgDiffOpt = VCSCommandGetOption('VCSCommandHGDiffOpt', '')
+	if hgDiffOpt == ''
+		let diffOptions = []
+	else
+		let diffOptions = ['-x -' . hgDiffOpt]
+	endif
+
+	let resultBuffer = s:DoCommand(join(['diff'] + diffExt + diffOptions + revOptions), 'diff', caption, {})
 	if resultBuffer > 0
 		set filetype=diff
 	else
-		echomsg 'No differences found'
+		if hgDiffExt == ''
+			echomsg 'No differences found'
+		endif
 	endif
 	return resultBuffer
 endfunction
 
-" Function: s:svkFunctions.GetBufferInfo() {{{2
+" Function: s:hgFunctions.Info(argList) {{{2
+function! s:hgFunctions.Info(argList)
+	return s:DoCommand(join(['log --limit 1'] + a:argList, ' '), 'log', join(a:argList, ' '), {})
+endfunction
+
+" Function: s:hgFunctions.GetBufferInfo() {{{2
 " Provides version control details for the current file.  Current version
 " number and current repository version number are required to be returned by
 " the vcscommand plugin.
-" Returns: List of results:  [revision, repository]
+" Returns: List of results:  [revision, repository, branch]
 
-function! s:svkFunctions.GetBufferInfo()
+function! s:hgFunctions.GetBufferInfo()
 	let originalBuffer = VCSCommandGetOriginalBuffer(bufnr('%'))
-	let fileName = resolve(bufname(originalBuffer))
-	let statusText = system(VCSCommandGetOption('VCSCommandSVKExec', 'svk') . ' status -v "' . fileName . '"')
+	let fileName = bufname(originalBuffer)
+	let statusText = system(VCSCommandGetOption('VCSCommandHGExec', 'hg') . ' status "' . fileName . '"')
 	if(v:shell_error)
 		return []
 	endif
 
-	" File not under SVK control.
+	" File not under HG control.
 	if statusText =~ '^?'
 		return ['Unknown']
 	endif
 
-	let [flags, revision, repository] = matchlist(statusText, '^\(.\{3}\)\s\+\(\S\+\)\s\+\(\S\+\)\s\+\(\S\+\)\s')[1:3]
+	let parentsText = system(VCSCommandGetOption('VCSCommandHGExec', 'hg') . ' parents "' . fileName . '"')
+	let [revision] = matchlist(parentsText, '^changeset:\s\+\(\S\+\)\n')[1]
+
+	let logText = system(VCSCommandGetOption('VCSCommandHGExec', 'hg') . ' log "' . fileName . '"')
+	let [repository] = matchlist(logText, '^changeset:\s\+\(\S\+\)\n')[1]
+
 	if revision == ''
 		" Error
 		return ['Unknown']
-	elseif flags =~ '^A'
+	elseif statusText =~ '^A'
 		return ['New', 'New']
 	else
 		return [revision, repository]
 	endif
 endfunction
 
-" Function: s:svkFunctions.Info(argList) {{{2
-function! s:svkFunctions.Info(argList)
-	return s:DoCommand(join(['info'] + a:argList, ' '), 'info', join(a:argList, ' '), {})
-endfunction
-
-" Function: s:svkFunctions.Lock(argList) {{{2
-function! s:svkFunctions.Lock(argList)
-	return s:DoCommand(join(['lock'] + a:argList, ' '), 'lock', join(a:argList, ' '), {})
-endfunction
-
-" Function: s:svkFunctions.Log() {{{2
-function! s:svkFunctions.Log(argList)
+" Function: s:hgFunctions.Log(argList) {{{2
+function! s:hgFunctions.Log(argList)
 	if len(a:argList) == 0
 		let options = []
 		let caption = ''
@@ -216,13 +232,13 @@ function! s:svkFunctions.Log(argList)
 	return resultBuffer
 endfunction
 
-" Function: s:svkFunctions.Revert(argList) {{{2
-function! s:svkFunctions.Revert(argList)
+" Function: s:hgFunctions.Revert(argList) {{{2
+function! s:hgFunctions.Revert(argList)
 	return s:DoCommand('revert', 'revert', '', {})
 endfunction
 
-" Function: s:svkFunctions.Review(argList) {{{2
-function! s:svkFunctions.Review(argList)
+" Function: s:hgFunctions.Review(argList) {{{2
+function! s:hgFunctions.Review(argList)
 	if len(a:argList) == 0
 		let versiontag = '(current)'
 		let versionOption = ''
@@ -231,32 +247,29 @@ function! s:svkFunctions.Review(argList)
 		let versionOption = ' -r ' . versiontag . ' '
 	endif
 
+"	let resultBuffer = s:DoCommand('cat --non-interactive' . versionOption, 'review', versiontag, {})
 	let resultBuffer = s:DoCommand('cat' . versionOption, 'review', versiontag, {})
 	if resultBuffer > 0
-		let &filetype=getbufvar(b:VCSCommandOriginalBuffer, '&filetype')
+		let &filetype = getbufvar(b:VCSCommandOriginalBuffer, '&filetype')
 	endif
 	return resultBuffer
 endfunction
 
-" Function: s:svkFunctions.Status(argList) {{{2
-function! s:svkFunctions.Status(argList)
-	let options = ['-v']
+" Function: s:hgFunctions.Status(argList) {{{2
+function! s:hgFunctions.Status(argList)
+	let options = ['-u', '-v']
 	if len(a:argList) == 0
 		let options = a:argList
 	endif
 	return s:DoCommand(join(['status'] + options, ' '), 'status', join(options, ' '), {})
 endfunction
 
-" Function: s:svkFunctions.Unlock(argList) {{{2
-function! s:svkFunctions.Unlock(argList)
-	return s:DoCommand(join(['unlock'] + a:argList, ' '), 'unlock', join(a:argList, ' '), {})
-endfunction
-" Function: s:svkFunctions.Update(argList) {{{2
-function! s:svkFunctions.Update(argList)
+" Function: s:hgFunctions.Update(argList) {{{2
+function! s:hgFunctions.Update(argList)
 	return s:DoCommand('update', 'update', '', {})
 endfunction
 
 " Section: Plugin Registration {{{1
-call VCSCommandRegisterModule('SVK', expand('<sfile>'), s:svkFunctions, [])
+call VCSCommandRegisterModule('HG', expand('<sfile>'), s:hgFunctions, [])
 
 let &cpo = s:save_cpo
diff --git a/plugin/vcssvn.vim b/plugin/vcssvn.vim
index 646b1c0..90d2158 100644
--- a/plugin/vcssvn.vim
+++ b/plugin/vcssvn.vim
@@ -277,11 +277,15 @@ endfunction
 function! s:svnFunctions.Unlock(argList)
 	return s:DoCommand(join(['unlock --non-interactive'] + a:argList, ' '), 'unlock', join(a:argList, ' '), {})
 endfunction
+
 " Function: s:svnFunctions.Update(argList) {{{2
 function! s:svnFunctions.Update(argList)
 	return s:DoCommand('update --non-interactive', 'update', '', {})
 endfunction
 
+" Annotate setting {{{2
+let s:svnFunctions.AnnotateSplitRegex = '\s\+\S\+\s\+\S\+ '
+
 " Section: Plugin Registration {{{1
 call VCSCommandRegisterModule('SVN', expand('<sfile>'), s:svnFunctions, [])
 
diff --git a/syntax/SVKAnnotate.vim b/syntax/gitAnnotate.vim
similarity index 66%
copy from syntax/SVKAnnotate.vim
copy to syntax/gitAnnotate.vim
index 3c53c3c..fdc0bd1 100644
--- a/syntax/SVKAnnotate.vim
+++ b/syntax/gitAnnotate.vim
@@ -1,9 +1,9 @@
 " Vim syntax file
-" Language:	SVK annotate output
+" Language:	git annotate output
 " Maintainer:	Bob Hiestand <bob.hiestand at gmail.com>
 " Remark:	Used by the vcscommand plugin.
 " License:
-" Copyright (c) 2007 Bob Hiestand
+" Copyright (c) 2009 Bob Hiestand
 "
 " Permission is hereby granted, free of charge, to any person obtaining a copy
 " of this software and associated documentation files (the "Software"), to
@@ -27,16 +27,18 @@ if exists("b:current_syntax")
 	finish
 endif
 
-syn match svkDate /\d\{4}-\d\{1,2}-\d\{1,2}/ skipwhite contained
-syn match svkName /(\s*\zs\S\+/ contained nextgroup=svkDate skipwhite
-syn match svkVer /^\s*\d\+/ contained nextgroup=svkName skipwhite
-syn region svkHead start=/^/ end="):" contains=svkVer,svkName,svkDate oneline
+syn region gitName start="(\@<=" end="\( \d\d\d\d-\)\@=" contained
+syn match gitCommit /^\x\+/ contained
+syn match gitDate /\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d [+-]\d\d\d\d/ contained
+syn match gitLineNumber /\d\+)\@=/ contained
+syn region gitAnnotation start="^" end=") " oneline keepend contains=gitCommit,gitLineNumber,gitDate,gitName
 
-if !exists("did_svkannotate_syntax_inits")
-	let did_svkannotate_syntax_inits = 1
-	hi link svkName Type
-	hi link svkDate Comment
-	hi link svkVer Statement
+if !exists("did_gitannotate_syntax_inits")
+	let did_gitannotate_syntax_inits = 1
+	hi link gitName Type
+	hi link gitCommit Statement
+	hi link gitDate Comment
+	hi link gitLineNumber Label
 endif
 
-let b:current_syntax="svkAnnotate"
+let b:current_syntax="gitAnnotate"

-- 
vim-scripts packaging



More information about the pkg-vim-maintainers mailing list