<?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>start-commit</title> <link rel="stylesheet" type="text/css" href="styles.css" /> <meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /> <style type="text/css"> body { background-image: url('images/draft.png'); background-repeat: no-repeat; background-position: top left; /* The following properties make the watermark "fixed" on the page. */ /* I think that's just a bit too distracting for the reader... */ /* background-attachment: fixed; */ /* background-position: center center; */ }</style> <link rel="home" href="index.html" title="Version Control with Subversion [DRAFT]" /> <link rel="up" href="svn.ref.reposhooks.html" title="Subversion Repository Hook Reference" /> <link rel="prev" href="svn.ref.reposhooks.html" title="Subversion Repository Hook Reference" /> <link rel="next" href="svn.ref.reposhooks.pre-commit.html" title="pre-commit" /> </head> <body> <div xmlns="" id="vcws-version-notice"> <p>This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit <a href="http://www.svnbook.com/">http://www.svnbook.com/</a> for stable versions of this book.</p> </div> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center">start-commit</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="svn.ref.reposhooks.html">Prev</a> </td> <th width="60%" align="center">Subversion Repository Hook Reference</th> <td width="20%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.pre-commit.html">Next</a></td> </tr> </table> <hr /> </div> <div class="refentry" title="start-commit"> <a id="svn.ref.reposhooks.start-commit"></a> <div class="titlepage"></div> <a id="idp25947136" class="indexterm"></a> <div class="refnamediv"> <h2>Name</h2> <p>start-commit — Notification of the beginning of a commit.</p> </div> <div class="refsynopsisdiv" title="Synopsis"> <h2>Synopsis</h2> <p> <code class="literal">start-commit <em class="replaceable"><code>REPOS-PATH</code></em> <em class="replaceable"><code>USER</code></em> <em class="replaceable"><code>CAPABILITIES</code></em> <em class="replaceable"><code>TXN-NAME</code></em></code> </p> </div> <div class="refsect1" title="Description"> <a id="idp25952976"></a> <h2>Description</h2> <p>The start-commit hook is run immediately after the commit transaction is created and its initial properties set. It is typically used as an early termination mechanism, avoiding what could be a lengthy commit process which would eventually fail at a later phase anyway due to a user's lack of commit privileges or some other commit metadata validation failure.</p> <p>If the start-commit hook program returns a nonzero exit value, the commit process is stopped, the commit transaction is destroyed, and anything printed to <code class="filename">stderr</code> is marshalled back to the client.</p> <p>The start-commit hook is not a suitable place to evaluate the substance of a particular commit, as it is invoked before any file or directory change information has been transmitted. Use the pre-commit hook script (which is described in <a class="xref" href="svn.ref.reposhooks.pre-commit.html" title="pre-commit">pre-commit</a> elsewhere in this reference) for that purpose.</p> <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"> <table border="0" summary="Note"> <tr> <td rowspan="2" align="center" valign="top" width="25"> <img alt="[Note]" src="images/note.png" /> </td> <th align="left">Note</th> </tr> <tr> <td align="left" valign="top"> <p>Prior to Subversion 1.8, the Subversion invoked the start-commit hook <span class="emphasis"><em>before</em></span> creating the commit transaction. Failure of the script resulted in that transaction not being created at all. This was changed in Subversion 1.8, though, to allow implementations of the start-commit hook access to the transaction's properties, which can include (among other things) the revision log associated with the commit.</p> </td> </tr> </table> </div> </div> <div class="refsect1" title="Input Parameter(s)"> <a id="idp25959904"></a> <h2>Input Parameter(s)</h2> <p>The command-line arguments passed to the hook program, in order, are:</p> <div class="orderedlist"> <ol class="orderedlist" type="1"> <li class="listitem"> <p>Repository path</p> </li> <li class="listitem"> <p>Authenticated username attempting the commit</p> </li> <li class="listitem"> <p>Colon-separated list of capabilities that a client passes to the server, including <code class="literal">depth</code>, <code class="literal">mergeinfo</code>, and <code class="literal">log-revprops</code> (new in Subversion 1.5)</p> </li> <li class="listitem"> <p>Commit transaction name (new in Subversion 1.8)</p> </li> </ol> </div> </div> <div class="refsect1" title="Common uses"> <a id="idp25967968"></a> <h2>Common uses</h2> <p>Access control (e.g., temporarily lock out commits for some reason).</p> <p>A means to allow access only from clients that have certain capabilities.</p> </div> </div> <div class="navfooter"> <hr /> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href="svn.ref.reposhooks.html">Prev</a> </td> <td width="20%" align="center"> <a accesskey="u" href="svn.ref.reposhooks.html">Up</a> </td> <td width="40%" align="right"> <a accesskey="n" href="svn.ref.reposhooks.pre-commit.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top">Subversion Repository Hook Reference </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top"> pre-commit</td> </tr> </table> </div> <div xmlns="" id="vcws-footer"> <hr /> <img src="images/cc-by.png" style="float: right;" /> <p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.8), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.</p> <p>This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.</p> <p>To submit comments, corrections, or other contributions to the text, please visit <a href="http://www.svnbook.com/">http://www.svnbook.com/</a>.</p> </div> </body> </html>