<?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>pre-lock</title> <link rel="stylesheet" type="text/css" href="styles.css" /> <meta name="generator" content="DocBook XSL Stylesheets V1.79.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.post-revprop-change.html" title="post-revprop-change" /> <link rel="next" href="svn.ref.reposhooks.post-lock.html" title="post-lock" /> </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">pre-lock</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="svn.ref.reposhooks.post-revprop-change.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.post-lock.html">Next</a></td> </tr> </table> <hr /> </div> <div class="refentry"> <a id="svn.ref.reposhooks.pre-lock"></a> <div class="titlepage"></div> <a id="idm16348" class="indexterm"></a> <div class="refnamediv"> <h2>Name</h2> <p>pre-lock — Notification of a path lock attempt.</p> </div> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <p> <code class="literal">pre-lock <em class="replaceable"><code>REPOS-PATH</code></em> <em class="replaceable"><code>PATH</code></em> <em class="replaceable"><code>USER</code></em> <em class="replaceable"><code>COMMENT</code></em> <em class="replaceable"><code>STEAL</code></em></code> </p> </div> <div class="refsect1"> <a id="idm16362"></a> <h2>Description</h2> <p>The <code class="literal">pre-lock</code> hook runs whenever someone attempts to lock a path. It can be used to prevent locks altogether or to create a more complex policy specifying exactly which users are allowed to lock particular paths. If the hook notices a preexisting lock, it can also decide whether a user is allowed to <span class="quote">“<span class="quote">steal</span>”</span> the existing lock.</p> <p>If the <code class="literal">pre-lock</code> hook program returns a nonzero exit value, the lock action is aborted and anything printed to <code class="filename">stderr</code> is marshalled back to the client.</p> <p>The hook program may optionally dictate the lock token which will be assigned to the lock by printing the desired lock token to standard output. Because of this, implementations of this hook should carefully avoid unexpected output sent to standard output.</p> <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"> <table border="0" summary="Warning"> <tr> <td rowspan="2" align="center" valign="top" width="25"> <img alt="[Warning]" src="images/warning.png" /> </td> <th align="left">Warning</th> </tr> <tr> <td align="left" valign="top"> <p>If the <code class="literal">pre-lock</code> script takes advantage of lock token dictation feature, the responsibility of generating a <span class="emphasis"><em>unique</em></span> lock token falls to the script itself. Failure to generate unique lock tokens may result in undefined—and very likely, undesired—behavior.</p> </td> </tr> </table> </div> </div> <div class="refsect1"> <a id="idm16375"></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>Versioned path that is to be locked</p> </li> <li class="listitem"> <p>Authenticated username of the person attempting the lock</p> </li> <li class="listitem"> <p>Comment provided when the lock was created</p> </li> <li class="listitem"> <p><code class="literal">1</code> if the user is attempting to steal an existing lock; <code class="literal">0</code> otherwise</p> </li> </ol> </div> </div> <div class="refsect1"> <a id="idm16391"></a> <h2>Common uses</h2> <p>Access control</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.post-revprop-change.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.post-lock.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top">post-revprop-change </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top"> post-lock</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>