linux下搭建svn服務器的文章已經有很多了,這里僅記下自己最近使用的一些實踐之談,原理先不深究,供日后查閱用。
安裝:yum install subversion -y
,可用rpm -ql subversion
查看svn的安裝目錄,默認在/usr/bin目錄下
創建版本庫:
mkdir /path/to/reposvnadmin create /path/to/repo
創建好后目錄下會有conf db format hooks locks README.txt這些個文件(夾),
其中conf是配置文件信息關系到登錄賬號的問題,hooks是鉤子文件會在服務器端執行一些客戶端對應動作的響應事件
配置用戶/開發組信息
修改conf/passwd,直接在后面追加 username = passwd的字符串明文,這里的username是linux中存在的用戶名,
修改conf/svnserve.conf
,注釋掉那幾行使之生效,
anon-access,auth-access,passwd-db,realm,
同時修改anon-access = none,
這樣在客戶端才可以有讀日志文件的權限,方便查看不同版本的提交日志信息,
修改realm = /path/to/repo指定svn版本庫目錄。
到這里個人開發的一個簡單配置就完成了,這時候用svnserve -d -r /path/to/repo
就可以啟動svn進程然后就可以使用客戶端來連接svn://ip:port/repo使用了,這里默認的端口是3690,
如果是想開多個svn版本庫到別的目錄,只需要重復以上步驟至啟動時指定不同的端口號即可,
比如使用3691端口啟動一個新的svn版本庫:svnserve -d --listen-port 3691 -r /path/to/repo
這樣在客戶端連接的時候url是svn://ip:3691/repo
開發組配置
多user在同一個group開發代碼,每個user去生成一個svn的版本庫然后指向同一個代碼目錄這個是很繁瑣而不符合規范的,
這個時候就用上了svn的成員組配置:
修改conf/authz文件,編輯:
# 添加 開發用戶組groupName1[groups]groupName1= userName1[,userName2,userName3...]# 添加開發組對代碼目錄的讀寫權限[/path/to/repo]@groupName1 = rw
這里的userName1,userName2的用戶需是linux里的存在的用戶,且對應的svn密碼已經在conf/passwd中指定。
到這里就配置好一個組成員的配置了,經測試是ok的.
post-commit鉤子配置
粗略的可以理解svn客戶端將修改信息以一定格式傳輸到服務端保存在固定格式的文件里面,
svn up的時候再將這些文件里的信息生效到代碼目錄里。
我們有時候需要在服務端實時的看到代碼更新信息,這就用到了post-commit鉤子:
在客戶端commit的時候觸發服務端到/path/to/repo執行svn up來更新文件,
同時減少日志文件的大小,防止服務端當機后的日志損失。
到svn版本庫配置信息目錄,
cd hooks,cp post-commit.tmpl post-commit
編輯post-commit:注釋掉最后一行,添加
export LANG=en_US.UTF-8/usr/bin/svn update --force /path/to/repo
到這里hook鉤子就配置好了,重啟svn進程,即可看到客戶端commit后文件同步更新。
以上就是svn在centos下的簡單使用實踐,應對日常的開發需求已經足夠。
新聞熱點
疑難解答
圖片精選