pre-lock

Name

pre-lock — Notification of a path lock attempt.

Synopsis

pre-lock REPOS-PATH PATH USER COMMENT STEAL

Description

The pre-lock 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 steal the existing lock.

If the pre-lock hook program returns a nonzero exit value, the lock action is aborted and anything printed to stderr is marshalled back to the client.

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.

Warning

If the pre-lock script takes advantage of lock token dictation feature, the responsibility of generating a unique lock token falls to the script itself. Failure to generate unique lock tokens may result in undefined—and very likely, undesired—behavior.

Input parameter(s)

The command-line arguments passed to the hook program, in order, are:

  1. Repository path

  2. Versioned path that is to be locked

  3. Authenticated username of the person attempting the lock

  4. Comment provided when the lock was created

  5. 1 if the user is attempting to steal an existing lock; 0 otherwise

Common uses

Access control