pre-lock
Prev | Repository Hooks | Next

## Name

pre-lock — Notification of a path lock attempt.

## 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

Prev | Up | Next
post-revprop-change | Home | post-lock