2014-02-20 45 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