Files @ 6d9b3ade3051
Branch filter:

Location: kallithea/docs/usage/locking.rst

6d9b3ade3051 1.3 KiB text/prs.fallenstein.rst Show Annotation Show as Raw Download as Raw
Zachary Auclair
Allowing multiple issue servers to be autolinked in the changeset view;
linking is now contingent on issue_server_link, issue_pat and issue_prefix
being defined; multiple servers can be used by specifying a common suffix on all
the above variables, ie ..

issue_server_link_1
issue_pat_1
issue_prefix_1

.. and ..

issue_server_link_other
issue_pat_other
issue_prefix_other

.. would be treated as two distinct servers, but ..

issue_pat_thing

.. would be ignored (since the other two requisite vars aren't present).

This patch is backwards compatible with existing variables (as a suffix
isn't needed).
.. _locking:

===================================
RhodeCode repository locking system
===================================


| Repos with **locking function=disabled** is the default, that's how repos work 
  today.
| Repos with **locking function=enabled** behaves like follows:

Repos have a state called `locked` that can be true or false.
The hg/git commands `hg/git clone`, `hg/git pull`, and `hg/git push` 
influence this state:

- The command `hg/git pull <repo>` will lock that repo (locked=true) 
  if the user has write/admin permissions on this repo

- The command `hg/git clone <repo>` will lock that repo (locked=true) if the 
  user has write/admin permissions on this repo


RhodeCode will remember the user id who locked the repo
only this specific user can unlock the repo (locked=false) by calling 

- `hg/git push <repo>` 

every other command on that repo from this user and 
every command from any other user will result in http return code 423 (locked)


additionally the http error includes the <user> that locked the repo 
(e.g. “repository <repo> locked by user <user>”)


So the scenario of use for repos with `locking function` enabled is that 
every initial clone and every pull gives users (with write permission)
the exclusive right to do a push.


Each repo can be manually unlocked by admin from the repo settings menu.