svn進階

用svn已經很久了,但我所在的技術環境比較簡單,基本我一個人使用svn。最近進一步學習了一下。以前對分支、標記知道,但不理解,也沒時間管他,現在也算了解清楚了。

推薦的svn目錄結構:
trunk主幹
branches分支
tags標記

這些規則對於svn是沒有意義的,只是一個規約。開發人員遵循即可。

分支就是根據項目需要,分理處一個特殊功能的代碼,進行持續開發。

標記是一個快照,複製出來就不能再提交了。但這也是一個規約,強行提交還是可以的。
用tortoiseSVN的話在tags上進行提交會談出警告。

主幹就是正常開發代碼分支,當然項目大了,在分支和標記外,還可以有很多很多的小的開發分支,基本功能實現差不多了,再合併到trunk。各個小分支可以給各個開發小組使用。

svn服務器內部對分支的實現是類似文件系統軟連接的形式。所以不佔什麼空間。
對於分支所提供的命令也就只有copy和merge兩個。

合併操作是在本地工作文件夾進行的。

tortoiseSVN的版本圖可以較好的顯示版本關係,branches會伸出一條分支,而tags則只會用黃色方塊標記在主分支上。再次聲明一下tags和branches在服務端是一樣處理的。


[b]關於權限[/b]

ssh+svn的方式權限管理是有些問題的。用戶能夠登錄ssh,就能訪問svn文件夾,那麼無法對其進行基於代碼路徑的控制

唯有使用apache (ssl) + svn是功能最全的:
安裝apache
安裝svn,打開dav等參數,會將so文件放入/usr/local/libexec/

httpd.conf
	LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule ssl_module modules/mod_ssl.so


<Location /svn>
DAV svn
SVNPath /usr/local/svn
AuthType Basic
AuthName "Feloo Subversion Repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
AuthzSVNAccessFile /usr/local/svn/conf/authz
</Location>


ssl配置(略)


密碼:
htpasswd -cm /etc/svn-auth-file zh


配置authz,和svn+ssh一樣

哇塞,好帥啊:
https://www.zeeeitch.cn/svn
發佈了16 篇原創文章 · 獲贊 0 · 訪問量 2798
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章