2012-08-07 61 views
3

刚刚装GitLab,它完美的作品有一个例外:它存储库在默认情况下,一个目录下的所有用户,如果两个用户分别将尝试用相同的创建项目名称,例如“测试”,第二个用户将收到失败,如“路径已被占用”。配置GitLab来为每个用户存储库在个人目录

的基本方法来隔离每个用户的存储库是让他们内部的子文件夹与用户名,就像GitHub一样。但我不知道该怎么做。

我知道GitLab使用Gitolite管理信息库,最后一个有一个功能,应该允许它:它被命名为“万用户”,在gitolite.conf它看起来像这样:

@wildcard_users = user1 user2 user3 
repo CREATOR/.* 
    C  = @wildcard_users 
    CRW+D = CREATOR 
    RW = WRITERS 
    R  = READERS 

这我们在repo路径中看到CREATOR,它将被替换为用户名创建的存储库。但我看到我可以使用这个功能的唯一方法是使用gitolite-admin.git存储库的副本手动管理gitolite,并且杀死了GitLab的所有想法,在这种情况下,所有这些事情都应该通过Web界面来实现。

回答

2

确切Gitolite功能覆盖这种需求被称为“wild repos”,它的基础是创建回购(所以,不GitLab

只需要创建一个新的回购协议的用户,为用户“ U4" (学生):

$ git clone [email protected]:assignments/u4/a12 
Initialized empty Git repository in /home/sitaram/a12/.git/ 
Initialized empty Git repository in /home/git/repositories/assignments/u4/a12.git/ 
warning: You appear to have cloned an empty repository. 

通知两个空回购inits,以及订单它们发生;-)

GitLab不支持该工作流程,并且需要一些较大的补丁才能管理并非直接位于repositories目录下的回收站。

+0

“GitLab不支持的工作流程,并且需要一些大的补丁程序,以管理其回购的仓库目录下并不直接。”我昨天花了整整一天的时间为这件事做了恶梦般的安装过程,现在我发现了这一点。叹。 – 2012-08-23 12:52:59

+0

@DanRay I empathize;)向GitLab项目添加问题/请求的时间。 https://github.com/gitlabhq/gitlabhq/issues – VonC 2012-08-23 12:55:47

相关问题