最近組織在做一個比較大的項目,需要多人參與配合,經常會對項目文件增刪查改,因此使用了SVN
作為項目管理工具。但大家都很“盲”,所以搭建SVN服務器
的任務就落在了我這個菜鳥身上。
-
工具使用
TortoiseSVN
,安裝過程中記得把命令行工具也安裝上,不然無法使用命令行提交代碼。 -
選擇一個空文件夾,比如
E:\SVN
,進入后鼠標右鍵創建一個版本庫
-
進入
conf
文件夾,打開svnserve.conf
文件,分別找到
anon-access = read
auth-access = write
password-db = passwd
去掉前面的注釋,並注意不要留空格。
- 打開同目錄下的
passwd
文件,在[users]
下添加用戶名和密碼,默認有兩個示例:
# harry = harryssecret
# sally = sallyssecret
左邊是賬號,右邊是密碼,供組織內不同成員登錄用,但如何為每個角色賦予不同權限不太會弄,似乎需要用到hook
腳本。比如要為Lucy
添加一個賬戶,可以添加:
Lucy = Lucy_123
,這樣Lucy就能以密碼Lucy_123
訪問項目了。
-
還有一點比較關鍵,就是要共享這個版本庫所在的文件夾,並設置好讀寫權限,不然除了主機外別的成員是訪問不到的。
-
然后開啟主機上的
SVN服務
,在命令行中輸入
svnserve.exe -d -r E:\
即將E盤作為服務的根目錄
- 上述操作完成后,可以在主機上用
file:///E:\SVN\respotityName
檢出項目文件,在局域網的其他計算機可以用
svn://主機ip/SVN/respotityName
進行檢出操作,至於外網,理論上可用
http(s)://主機ip/服務器資源庫名稱
訪問,不過沒有試驗過,不知道防火牆會不會阻止端口的連接。
配置獨占簽出
- 在檢出的項目文件夾上點擊右鍵,選擇
TortoiseSVN -> 屬性 -> 新建 -> 需要鎖定
,這樣項目里的子文件夾就都加上了needs-lock
的屬性,以后每次簽出都會鎖定文件。但SVN
不會主動發出通知告訴其他用戶文件被鎖了,所以每次編輯文件前先嘗試加一次鎖,如果提示失敗就表示文件被其他用戶獨占了。