以前使用svn的時候會隻建一個倉庫,然後把所有的項目都放在一個倉庫裡面。雖然這樣也可以實作版本控制,但是随着項目的增多就會發現一個問題,因為整個倉庫是有一連串的版本号的,然後項目又是交替進行的,這樣就出現了單個倉庫版本号斷層的問題。比如有一個倉庫repository,有一個項目tiantian,有一個項目tianyi,剛開始天天操作并送出了可能版本為10,然後tianyi這個項目操作并送出了,版本為11了,tiantian再操作并送出版本就為12了,斷層了。雖然說這也沒有很大的問題,但是當檢視曆史版本的時候那種感覺不好!是以現在就是一個項目一個倉庫了。
假設倉庫都統一放在E:\svnserver目錄下,那麼先執行指令svnadmin create E:\svnserver/tiantian建立倉庫tiantian,同樣建立倉庫tianyi。把tiantian下面的conf下面的passwd和authz拷貝到E:\svnserver下進行統一的使用者管理和權限管理。然後分别在tiantian和tianyi下面的conf/svnserve.conf檔案中把使用者管理和權限管理的相關檔案設為E:\svnserver下面的passwd和authz,注意在配置檔案的每一行的開始處不能有空格
這樣就可以在E:\svnserver下的passwd和authz檔案中進行統一的配置進行管理了。
passwd中的使用者名和密碼是鍵值對形式,如tiantian = tiantian,則表示使用者tiantian的密碼為tiantian
在authz中進行權限管理時可單獨對使用者進行權限配置,也可以為一個組進行配置,聲明一個組時,可以在authz檔案中的groups下進行聲明,組成員之間用逗号隔開。
在進行授權的時候,可以直接對某一目錄授權,也可以是對某一個項目授權。授權一般是有授權目标和使用者權限組成的,都是在授權目标後跟着使用者權限。如:[/]tiantian = rw,則表示給使用者tiantian所有的權限,其中的"/"表示根目錄,這是直接對目錄授權的形式。
直接對項目授權:[tiantian:/]andy = rw。表示給使用者andy對項目tiantian的所有内容的讀寫權限
給使用者組授權,在給使用者組授權的時候需要在使用者組前面加上"@"标記,用以表明該使用者是一個使用者組
添加服務到自啟動服務中:
在CMD中執行上述指令就可以将目錄E:\svnserver下的所有版本庫都加入到系統服務中