VisualSVSVN伺服器: VisualSVN Server
為什麼要用VisualSVN Server,而不用Subversion。
VisualSVN Server整合了Apache + Subversin + SSL,另外,VisualSVN Server還提供圖形介面的管理配置 :可以建立使用者、設定密碼,同時還可以建議新的程式碼程式庫。VisualSVN Server是免費的(而VisualSVN是收費的)。對初學者來說避免了很多Apache伺服器的設定。同時也不用運行svnadmin來建立svn repository。
VisualSVN Server下載地址:
http://www.visualsvn.com/server/download/
安裝
Visual SVN的安裝非常的簡單,整個安裝過程不需要使用者的很多幹預。
選擇程式安裝的路徑、Subversion Repository(庫)的路徑和所使用的協議和連接埠。
你可以選擇HTTP和HTTPS兩種協議,如需使用svn協議也非常的方便,在1.4版本後,Subversion加入了Service啟動並執行功 能。連接埠號碼可以任意定義。對於HTTPS的連接埠號碼預設可以選擇443和8443,對於HTTP預設可以選擇80、8080和81。
我個人偏向於使用HTTPS的8443連接埠,原因很簡單HTTPS安全性比較高,443連接埠是標準HTTPS連接埠,如果做WEB開發那肯定就有麻煩,同時Skype也會使用這個連接埠進行某些通訊(Skype很奇怪的,會使用這標準連接埠來通訊)。
建議在安裝Repository時可以考慮安裝到其他目錄,這樣比較容易備份。
運行
選擇開始菜單->附件,並選中VisualSVN即可。
Subversion和伺服器都會自動運行起來,伺服器的基本情況可以從右邊視窗的資訊,包括伺服器的訪問地址URL。使用者可以使用TortoiseSVN工具或Web瀏覽器,通過這個URL訪問SVN Server。
建立使用者和組
按右鍵Users或Groups,彈出的菜單有Create User或Creat Group,在出現的視窗中
建立版本庫
按照SVN的習慣,版本庫的布局一般是一個項目一個版本庫,每個版本庫中對應3個檔案夾
Trunk 主線,開發過程中的工作目錄
Branches 支線,臨時分支,定製化需求。 如:branches/order008 branches/order009
Tags 發布目錄,不做修改。如:tags/release-1.0 tags/release-1.1
按右鍵Repositories,彈出的菜單有Create New Repository…, 在出現的視窗中,輸入版本庫的名稱,同時需要選擇是否建立預設的版本庫結構,即3個檔案夾。預設可以選中。然後點擊OK即可建立好一個新的版本庫。
設定許可權
對於每個版本庫,預設情況下,所有的使用者都直接繼承“父目錄Repositories”的許可權,而這個目錄的許可權一般都設定成“Read/Write”,當然也可以設定其他值。
右鍵點擊建立的版本庫,快顯功能表選擇Properties,在彈出的視窗中,預設所有的使用者都是繼承父目錄的許可權,如果需要對某個使用者修改其對該版本庫的許可權,需點擊該使用者並單獨修改。
不推薦在VisualSVN Server的管理工具上直接添加檔案夾或檔案,最好是採用用戶端工具TortoiseSVN進行匯入和建立等相關的操作。
具體操作見TortoiseSVN的協助指南。
匯入版本庫
匯入版本庫之前,先在本地將該版本庫的檔案夾結構在本地建好
設定
右鍵點擊不同的對象,彈出的菜單都會不同,而其中Properties是設定選項經常可能出現的地方。
VisualSVN Server的屬性
右鍵點擊VisualSVN Server,選Properties。如圖。
彈出“屬性”對話方塊,第一個“標籤頁”是“Genernal”,其中Repository Root就是設定版本庫根目錄的路徑,預設是C:/Repository/,可以修改到您需要的地方,其實這個選項在安裝的時候就已經是可以配置的了。
-------------------------------------
SVN用戶端:推薦使用TotoiseSVN
TortoiseSVN 是一個用戶端程式,用來與 Subversion 伺服器端通訊。Subversion 內建一個用戶端程式 svn.exe ,但 TortoiseSVN 更好操作,提高效率。
TortoiseSVN下載地址:
http://tortoisesvn.net/downloads
Tortoise SVN 用戶端 使用注意
1.提交原始碼到伺服器時,一定確保原生代碼是最新版本,否則可能提交失敗,或者造成版本衝突。
2.更新操作可能會因為版本衝突而失敗,這是可以使用合并【Merge】或其他方法解決;也可能因為鎖定【Get Lock】而失敗,這是需要先解鎖【Release Lock】。
3.實際上,從你把原始碼遷簽入SVN伺服器開始,每一個版本的資料和檔案,就算是你已經刪除了的,也都可以隨時遷出。
4.向SVN伺服器提交原始碼的時候,一定不要提交bin、obj等檔案夾,否則會很麻煩。但是web項目的bin目錄除外,但是web項目的bin目錄中的引用其他項目而產生的dll不需要提交。
5.一個好習慣:如果項目中引用了其他的第三方的程式集,比如 EnterpriseLibrary、FCKEditor等,這時候不要簡單從他們的安裝位置引用,而是在你的解決方案下,添加一個Library的目 錄,把需要的程式集複製到這裡,然後從Library目錄引用,這樣有什麼好處,自己想一想吧。
----------------------------------
安裝使用過程遇到的問題和解決。
1.開始->程式->VisualSVN Server Manger 就不行了,提示拒絕訪問
解決:防火牆上設定 允許 SVCHOST.exe 下的 wmiprvse.exe 訪問網路即可。
2.TotoiseSVN用戶端訪問出現異常:伺服器發送了意外的傳回值(405 Method not Allowed), 在響應"PROPFIND"的請求"/" 中
解決:訪問的地址不正確,或者沒有存取權限。修改訪問的地址即可。
3.svn伺服器,安裝TortoiseSVN用戶端,提交時提示:Server sent unexpected return value (403 Forbidden) in response to MKACTIVITY
原因:SVN在Check out 等操作時,是URL大小寫不敏感的,可在Commit /delete時卻是在大小寫敏感的,所以在設定SVN的伺服器路徑時,一定要注意大小寫。
通俗一點講,Check out時,URL的大小寫無所謂,但是在提交、合并、刪除等操作時,就必須要大小寫匹配,否則就會報以上的錯誤。