2014-02-20 25 views
1

我在我的公司设置了gitolite服务器:效果很好,但大部分时间用于管理它,包括删除由错误创建的仓库。
事实上,用户可以访问一个项目的根目录中,他们可以为自己的项目库,使用野生回购的概念:避免在输入错误时创建仓库

你没有做什么特别的创建这样的回购;只是将它克隆好像它已经存在了,它就会弹出存在。

http://www.linuxforu.com/2011/01/gitolite-specify-complex-access-controls-git-server/

如果克隆和创建被映射到两个不同的命令来避免这种无意回购创建我宁愿。
是否有最佳做法来实现这样的工作流程?

+1

查看'.gitolite.rc'文件中的'no-auto-create'和'no-create-on-read'功能。 –

回答

2

如果克隆和创建映射到了两个不同的命令

这似乎并不可能,当你认为克隆一个回购协议的唯一途径是为回购协议首先存在我宁愿。
这意味着,用户将克隆通过Gitolite在后台创建一个回购协议(因为wild repo directive

但是,删除回购应该是一个管理非常容易,考虑Gitolite commandsStefan Näwe细节in the comments):

# move it into the trashcan (can be restored) 
ssh [email protected] D trash repo 

# Or, to really delete it 
ssh [email protected] D unlock repo 
ssh [email protected] D rm repo 

如果任何你能设置一些cron作业这将监控每个库的内容,并在看到它特定的文件(如“TO_DELETE”)将删除该回购协议。
您可以添加其他标准,以防止删除合法回购(即有很多提交和最近的活动)。 那样,所有的用户将不得不删除一个他/她刚刚创建的回购,将添加'TO_DELETE'文件,提交和推送。

+0

有两种方法可以删除回购:1.'ssh git @ host D回收库将其移入垃圾箱(可以恢复)2.'ssh git @ host D解锁回购; ssh git @ host D rm repo'确实可以删除它。 –

+0

@StefanNäwe谢谢您的确切语法,我已将它包含在答案中。 – VonC

1

谢谢Stefan Näwe提及no-auto-creat pref,让我走上正轨。
检查gitolite changelog后,看起来create命令自v3.3以来确实存在(需要明确激活)。

升级我的gitolite安装并结合这两个功能似乎是解决方案。

+0

+1。不要犹豫,编辑你的答案,详细说明你如何使用'create'命令和'no-auto-create'设置。 – VonC