locking.rst
28 lines
| 1.1 KiB
| text/x-rst
|
RstLexer
r2726 | .. _locking: | |||
Thomas De Schampheleire
|
r4973 | ================== | ||
Repository locking | ||||
================== | ||||
r2726 | ||||
Søren Løvborg
|
r5425 | Kallithea has a *repository locking* feature, disabled by default. When | ||
Thomas De Schampheleire
|
r4973 | enabled, every initial clone and every pull gives users (with write permission) | ||
Mads Kiilerich
|
r4902 | the exclusive right to do a push. | ||
Søren Løvborg
|
r5425 | When repository locking is enabled, repositories get a ``locked`` flag. | ||
The hg/git commands ``hg/git clone``, ``hg/git pull``, | ||||
Thomas De Schampheleire
|
r4973 | and ``hg/git push`` influence this state: | ||
r2726 | ||||
Søren Løvborg
|
r5425 | - A ``clone`` or ``pull`` action locks the target repository | ||
Thomas De Schampheleire
|
r4973 | if the user has write/admin permissions on this repository. | ||
r2726 | ||||
Thomas De Schampheleire
|
r4973 | - Kallithea will remember the user who locked the repository so only this | ||
Søren Løvborg
|
r5425 | specific user can unlock the repo by performing a ``push`` | ||
Thomas De Schampheleire
|
r4973 | command. | ||
r2726 | ||||
Thomas De Schampheleire
|
r4973 | - Every other command on a locked repository from this user and every command | ||
from any other user will result in an HTTP return code 423 (Locked). | ||||
Søren Løvborg
|
r5425 | Additionally, the HTTP error will mention the user that locked the repository | ||
Thomas De Schampheleire
|
r4973 | (e.g., “repository <repo> locked by user <user>”). | ||
r2726 | ||||
Thomas De Schampheleire
|
r4973 | Each repository can be manually unlocked by an administrator from the | ||
repository settings menu. | ||||