下載安裝文件:
服務端安裝文件:VisualSVN-Server-1.6.2
客戶端安裝文件:TortoiseSVN-1.5.5.14361-win32-svn-1.5.4
上面是我使用的版本。
在VisualSVN Server 的官網 http://www.visualsvn.com 上提供了兩個產品。一個是VisualSVN,另一個是VisualSVN Server (下面簡稱Server)。前者是一個集成到Visual Studio里的插件,功能挺強大,但是需要收費滴
一、VisualSVN Server的配置和使用方法【服務器端】
1,VisualSVN Server的安裝
下載安裝包,解壓后得到.exe文件,雙擊進行安裝
其中的Repositories大家改到另一個磁盤目錄進行保存,具體原因不用說了(據實際安裝中,程序路徑和倉庫代碼路徑必須在同一個盤符下,否則啟動服務時失敗而導致安裝失敗,奇怪的問題)。
另建議復選 Usesecure connection項,這時候只有443和8443兩個端口可用(注意自己公司的防火牆問題,如果有沖突則需要開放該對應端口以使用)。
還有就是建議使用 Subversion身份驗證模式。(具體如果處於域里面則已包含了域驗證,相對安全了)
一步步Next,安裝完畢,默認選擇打開操作管理界面(也可以開始->程序->VisualSVN打開操作管理界面)
2,添加一個代碼庫【Repository】
右擊Repository
上圖中的CheckBox如果選中,則在代碼庫StartKit下面會創建trunk、branches、tags三個子目錄;不選中,則只創建空的代碼庫StartKit
點擊OK按鈕,代碼庫就創建成功
創建完代碼庫后,沒有任何內容在里面。我會在這個教程的第二部分說明如何遷入源代碼。
先來看一下,給代碼庫創建用戶及分配權限
3,給代碼庫創建用戶及分配權限
下面,我們開始安全性設置,在左側的Users上點擊右鍵
點擊OK,我們就創建一個用戶了。按照上面的過程,分別添加用戶Developer1、tester1、manager1,然后添加這些用戶到我們剛才創建的項目里
右擊剛才新建的代碼庫StartKit
點擊上圖中的"Add..."按鈕,在下圖中選擇我們剛才添加的用戶,點擊OK按鈕
說明:大家可能注意到了下圖中的Groups,是的,你也可以先創建組,把用戶添加到各個組中,然后對組進行授權
按照下圖所示,分別對用戶【或組】進行授權:
因為用戶starter在團隊中是新來者,不希望他向代碼庫中提交新代碼,所以他只能讀取代碼庫中的代碼,不能提交代碼。tester1是測試人員,不負責代碼編寫,所以也是只讀權限。而Developer1和manager1是開發人員和項目經理,自然具有讀、寫的權限。
在實際的項目開發過程中,Developer和tester往往不可能只有一個人,這時候使用組來授權更加方便,這個大家可以自己練習一下。
二、TotoiseSVN的基本使用方法
(一)、簽入源代碼到SVN服務器
假如我們使用Visual Studio在文件夾StartKit中創建了一個項目,我們要把這個項目的源代碼簽入到SVN Server上的代碼庫中里,首先右鍵點擊StartKit文件夾,這時候的右鍵菜單如下圖所示:
點擊Import,彈出下面的窗體,其中http://zt.net.henu.edu.cn 是服務器名,svn是代碼倉庫的根目錄,StartKit是我們在上個教程中添加的一個代碼庫:
說明:左下角的CheckBox,在第一次簽入源代碼時沒有用,但是,在以后你提交代碼的時候是非常有用的。
點擊OK按鈕,會彈出下面的窗體,要求輸入憑據
源代碼已經成功簽入SVN服務器了。這時候團隊成員就可以遷出SVN服務器上的源代碼到自己的機器了
(二)、簽出源代碼到本機
在本機創建文件夾StartKit,右鍵點擊Checkout,彈出如下圖的窗體:
在上圖中URL of Repository:下的文本框中輸入svn server中的代碼庫的地址,其他默認,點擊OK按鈕,就開始簽出源代碼了。
說明:上圖中的Checkout Depth,有4個選項,分別是遷出全部、只簽出下一級子目錄和文件、只簽出文件、只簽出空項目,默認的是第一項。上面的例子中,我們也可以使用web的方式訪問代碼庫,在瀏覽器中輸入http://zt.net.henu.edu.cn/svn/StartKit/
這時候也會彈出對話框,要求輸入用戶名和密碼,通過驗證后即可瀏覽代碼庫中的內容。
搞定!源代碼已經成功簽出到剛才新建的StartKit目錄中。
打開StartKit目錄,可以看到如下圖的文件夾結構:
一旦你對文件或文件夾做了任何修改,那么文件或文件夾的顯示圖片機會發生變化。下圖中我修改了其中的二個文件
(附:不同狀態所對應的圖片)
現在我們已經知道怎么將源代碼簽入到SVN服務器,怎么從服務器簽出代碼到本機,也簡單了解了不同狀態所對應的圖案啦。
(三)提交修改過的文件到SVN服務器上面的圖2-2-7中,我修改了位於Model文件中的二個文件ImageInfo.cs和NewsInfo.cs,下面演示如何提交到SVN服務器。
注意:提交源代碼到服務器時,一定確保本機的代碼是最新版本,否則可能提交失敗,或者造成版本沖突。
在Model文件夾上點擊右鍵或在Model文件下的空白處點擊右鍵,點擊SVN Commit…彈出下面的窗體:
點擊ok
(四)添加新文件到SVN服務器
我們在Model文件下添加一個新的類文件UserInfo.cs,在Model文件下的空白處點擊右鍵,點擊SVN Commit…,和上面講的提交修改過的文件到SVN服務器一樣,就可以了。
另外也可以在文件UserInfo.cs上點擊右鍵,點擊TortoiseSVN=>>Add,彈出如下圖的窗體:
選中UserInfo.cs文件,點擊OK按鈕,這樣並沒有將這個文件提交到SVN服務器,只是將這個文件標記為源代碼庫庫中的文件,並將其狀態置為修改狀態。之后,我們要再SVN Commit這個文件一次,才可以將其真正提交到SVN服務器上的代碼庫中。
上面講是添加文件,實際上,添加文件夾的步驟也是一樣的,這里就不說了。
(五)更新本機代碼與SVN服務器上最新的版本一致
這個也很簡單,只要在需要更新的文件夾上點擊右鍵或在該文件下的空白處點擊右鍵,點擊SVN Update,就可以了。
注意:更新操作可能會因為版本沖突而失敗,這是可以使用合並【Merge】或其他方法解決;也可能因為鎖定【Get Lock】而失敗,這是需要先解鎖【Release Lock】。
六、重命名文件或文件夾,並將修改提交到SVN服務器只要在需要重命名的文件或文件夾上點擊右鍵,點擊TortiseSVN=>>Rename…,在彈出的窗體中輸入新名稱,點擊OK按鈕,就可以了。此方法也不是直接重命名,而是將該文件或文件夾的名稱標記為重命名后名稱,也需要我們使用SVN Commit提交到SVN服務器后才真正重命名。
七、刪除文件或文件夾,並將修改提交到SVN服務器最簡單就是,你直接刪除文件或文件夾,然后使用SVN Commit提交更新到SVN服務器。另外一種方法是在你要刪除的文件或文件夾上點擊右鍵=>>TortoiseSVN=>>Delete刪除,此方法也不是直接刪除,而是將該文件或文件夾的狀態置為刪除,也需要我們使用SVN Commit提交到SVN服務器后才真正刪除。
說明:實際上,從你把源代碼遷簽入SVN服務器開始,每一個版本的數據和文件,就算是你已經刪除了的,也都可以隨時遷出。
以上只是TortoiseSVN最簡單的幾個功能,其實他的功能遠不止這些,其他的功能大家可以在使用的過程中慢慢體會,有些功能我會在下面的教程中使用到,到時候會和大家講清楚用法。
注意:向SVN服務器提交源代碼的時候,一定不要提交bin、obj等文件夾,否則會很麻煩。但是web項目的bin目錄除外,但是web項目的bin目錄中的引用其他項目而生成的dll不需要提交。
一個好習慣:如果項目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,這時候不要簡單從他們的安裝位置引用,而是在你的解決方案下,添加一個Library的目錄,把需要的程序集復制到這里,然后從Library目錄引用,這樣有什么好處,自己想一想吧
三、版本庫遷移
假如有兩個服務器A和B,版本庫原來在A服務器上,現在要移到B服務器,做法如下
1,將A中的版本庫更新到MYeclipse(注意要刪除掉....\WebRoot\WEB-INF\下的calsses文件夾,因為這里包含Myeclipse自動編譯文件,如果不刪除就上傳至版本庫,check出來的項目同步時會報錯),右擊項目-team-disconntect(斷開)-選擇第一項-Yes,目的是將原來使用svn或cvs時項目中的.cvs和.svn文件清除掉
2,在B上安裝客戶端和服務端,再按上面講的步驟在B的服務端上建版本庫,然后把項目拷貝到B中的某個位置,使用svn客戶端右擊項目,選擇import導入到版本庫中
(參考:http://www.cnblogs.com/lzhdim/archive/2009/04/23/1442189.html
http://hi.baidu.com/hsyl/blog/item/7ad43b2986af8bf498250a54.html )