Только что установил GitLab, он отлично работает за одним исключением: он по умолчанию хранит репозитории для всех пользователей в одном каталоге, а если два пользователи самостоятельно попытаются создать проект с таким же названием, например, «тест», второй пользователь получит отказ типа «путь уже пройден».
Основной подход к изоляции репозиториев каждого пользователя состоит в том, чтобы поместить их во вложенные папки с именем пользователя, как это делает GitHub. Но я понятия не имею, как это сделать.
Я знаю, что GitLab использует Gitolite для управления репозиториями, и у последнего есть функция, которая должна это разрешать: он называется «пользователи с подстановочными знаками», в gitolite.conf это выглядит так:
@wildcard_users = user1 user2 user3
repo CREATOR/.*
C = @wildcard_users
CRW+D = CREATOR
RW = WRITERS
R = READERS
Таким образом, мы видим CREATOR в пути к репозиторию, который будет заменен репозиторием, созданным с именем пользователя. Но единственный способ, которым я вижу, что я мог бы использовать эту функцию, — это вручную администрировать gitolite, используя клон репозитория gitolite-admin.git, и это убивает всю идею GitLab, где все подобные вещи должны быть разрешены через веб-интерфейс.