Mercurial > kallithea
annotate docs/usage/locking.rst @ 6453:ebe7d95f698b
auth: simplify the double invoked auth classes used for permission checking
Also avoid storing request state in the Has Permission instances. The instances
er temporary and only used once and there is thus not real problem, but it is
simpler and cleaner this way.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sun, 22 Jan 2017 01:16:52 +0100 |
parents | 5ae8e644aa88 |
children |
rev | line source |
---|---|
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
1 .. _locking: |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
2 |
4973
8d065db04909
docs/usage: rework section 'repository locking'
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
4955
diff
changeset
|
3 ================== |
8d065db04909
docs/usage: rework section 'repository locking'
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
4955
diff
changeset
|
4 Repository locking |
8d065db04909
docs/usage: rework section 'repository locking'
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
4955
diff
changeset
|
5 ================== |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
6 |
5425
5ae8e644aa88
docs: spelling, grammar, content and typography
Søren Løvborg <sorenl@unity3d.com>
parents:
4973
diff
changeset
|
7 Kallithea has a *repository locking* feature, disabled by default. When |
4973
8d065db04909
docs/usage: rework section 'repository locking'
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
4955
diff
changeset
|
8 enabled, every initial clone and every pull gives users (with write permission) |
4902 | 9 the exclusive right to do a push. |
10 | |
5425
5ae8e644aa88
docs: spelling, grammar, content and typography
Søren Løvborg <sorenl@unity3d.com>
parents:
4973
diff
changeset
|
11 When repository locking is enabled, repositories get a ``locked`` flag. |
5ae8e644aa88
docs: spelling, grammar, content and typography
Søren Løvborg <sorenl@unity3d.com>
parents:
4973
diff
changeset
|
12 The hg/git commands ``hg/git clone``, ``hg/git pull``, |
4973
8d065db04909
docs/usage: rework section 'repository locking'
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
4955
diff
changeset
|
13 and ``hg/git push`` influence this state: |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
14 |
5425
5ae8e644aa88
docs: spelling, grammar, content and typography
Søren Løvborg <sorenl@unity3d.com>
parents:
4973
diff
changeset
|
15 - A ``clone`` or ``pull`` action locks the target repository |
4973
8d065db04909
docs/usage: rework section 'repository locking'
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
4955
diff
changeset
|
16 if the user has write/admin permissions on this repository. |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
17 |
4973
8d065db04909
docs/usage: rework section 'repository locking'
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
4955
diff
changeset
|
18 - Kallithea will remember the user who locked the repository so only this |
5425
5ae8e644aa88
docs: spelling, grammar, content and typography
Søren Løvborg <sorenl@unity3d.com>
parents:
4973
diff
changeset
|
19 specific user can unlock the repo by performing a ``push`` |
4973
8d065db04909
docs/usage: rework section 'repository locking'
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
4955
diff
changeset
|
20 command. |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
21 |
4973
8d065db04909
docs/usage: rework section 'repository locking'
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
4955
diff
changeset
|
22 - Every other command on a locked repository from this user and every command |
8d065db04909
docs/usage: rework section 'repository locking'
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
4955
diff
changeset
|
23 from any other user will result in an HTTP return code 423 (Locked). |
5425
5ae8e644aa88
docs: spelling, grammar, content and typography
Søren Løvborg <sorenl@unity3d.com>
parents:
4973
diff
changeset
|
24 Additionally, the HTTP error will mention the user that locked the repository |
4973
8d065db04909
docs/usage: rework section 'repository locking'
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
4955
diff
changeset
|
25 (e.g., “repository <repo> locked by user <user>”). |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
26 |
4973
8d065db04909
docs/usage: rework section 'repository locking'
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
4955
diff
changeset
|
27 Each repository can be manually unlocked by an administrator from the |
8d065db04909
docs/usage: rework section 'repository locking'
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
4955
diff
changeset
|
28 repository settings menu. |