Files @ bce8e20057e1
Branch filter:

Location: kallithea/docs/usage/locking.rst - annotation

bce8e20057e1 1.3 KiB text/prs.fallenstein.rst Show Source Show as Raw Download as Raw
Thomas De Schampheleire
repository summary: avoid table bleed on long commit messages

For commit messages with the first line being very long, the 'latest
changes' table on the repository overview page can 'bleed', so that the
commit number overlaps with the commit status.

Commit 15cb8156b10d732cf39b37a88c656894621c0f54 changed the initial truncate
on 50 characters to a chop at the first newline characters, causing this
issue to pop up more frequently.

Instead of using floating divs for the commit status and number of comments,
use dedicated table columns, as compact as possible.
Additionally, move these new columns to the very left of the table, instead
of cramming them in between the revision and commit message.

The comments-container class gets a new attribute 'white-space: nowrap' to
avoid the comment icon to wrap from the number of comments, when the table
does wrap on a small screen.
Note that the icon currently does not display as it should be renamed from
icon-comment-alt/colored to icon-comment. This will be fixed by Sean Farley.
.. _locking:

===================================
Kallithea 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


Kallithea 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.