目錄
參考鏈接
http://blog.csdn.net/lu1024188315
https://www.cnblogs.com/warrior1988/p/5359084.html
VisualSVN server 服務端和 TortoiseSVN客戶端搭配比使用原始的 SVN和Apache相配合來實現源代碼的 SVN管理簡單。
VisualSVN Server的下載:http://www.visualsvn.com/server/download/

TortoiseSVN 的 下載:http://tortoisesvn.net/downloads.html

在網頁下面還有一個Language packs,你可以選擇簡體中文,下載后直接安裝,最后勾選立即使用即可。

一 、安裝Visual SVN
首先下載VisualSVN Server
【1 】打開后一路下一步,有協議點同意

【2】 選擇 visualVSN服務器和管理控制台 或只有管理控制權限

選個標准版或企業版

【3】選擇程序安裝的路徑、Subversion Repository(庫)的路徑和所使用的協議和端口以及備份路徑
Location是指VisualSVN Server的安裝目錄,
Repositorys是指定你的版本庫目錄,
Server Port指定一個端口,
Use secure connection勾上表示使用安全連接。
繼續【Next】到【Finish】。

選擇HTTP或HTTPS兩種協議,
HTTPS的端口號默認可以選擇443和8443
HTTP默認可以選擇80、8080和81
在1.4版本后,Subversion加入了Service運行的功能。端口號可以任意定義。
個人偏向於使用HTTPS的8443端口,因為HTTPS安全性比較高,雖然443端口是標准HTTPS端口,但如果做WEB開發那肯定就有麻煩,同時Skype也會使用這個端口進行某些通訊。
還有就是下面的用於驗證的身份,一個是windows驗證,一個是Subversion身份驗證,這里默認是Subversion身份驗證。
【4】接着就是安裝過程


【5】安裝完成后會詢問你是否需要運行VisualSVN Server Manager

【6 】點finish,打開“ VisualSVN Server Manager ”,如下:

右側狀態區包括:
Status:服務運行狀態
SubversionAuthentication:賬戶信息
Respositories:代碼庫信息
二、配置SVN
1.創建遠程倉庫
修改URL:
如電腦IP是:192.168.100.100
右鍵 VisualSVN Server選擇Properties

選中NetWork輸入IP即可

添加一個代碼庫【Repository】,左側Respositories上右鍵菜單中選擇創建一個代碼庫,如下圖:

之后會提示選擇倉庫類型:

FSFS:根據標准的FSFS數據存儲創建一個常規的Subversion存儲庫。
VDFS:基於VisualSVN分布式文件系統創建分布式Subversion存儲庫。VDFS存儲庫充當標准的Subversion存儲庫,允許在地理分布的站點之間復制數據。
選擇FSFS,輸入倉庫名字

選Empty,只創建空的代碼庫FirstRep;
選Single,則在代碼庫FirstRep下面會創建trunk、branches、tags三個子目錄。
我們選Single

選擇倉庫的使用權限,選擇所有用戶

點擊create之后帶你finish,創建成功


2.創建用戶並添加
在左側的Users上點擊右鍵:



輸入信息,點擊OK,我們就創建一個用戶了。
按照上面的過程,分別添加用戶其他用戶就可以了。
下面我們開始添加這些用戶到我們剛才創建的項目里。
點擊剛才創建的庫,右擊選擇屬性(Properties)

點擊上圖中的"Add..."按鈕,在下圖中選擇我們剛才添加的用戶,

選中添加的用戶還可以配置權限

注意這里的權限設置,要選擇好。
點擊"確定"按鈕,上面的用戶就具有了訪問代碼庫的不同權限。
右鍵創建的倉庫,選copy url ,然后到網頁打開連接

之后會讓你輸入賬號密碼,然后就可以登陸了。

三、安裝TortoiseSVN
上傳到SVN服務器首先要下載TortoiseSVN
下載后安裝,一路next,然后finish,給出部分截圖如下:



最后也可以自己安裝中文包,一路next,最后勾選立即使用即可。
四、上傳項目到遠程倉庫
假設我們本地有個TestDIR目錄,里面兩個txt文件,如下圖:

此時遠程倉庫狀態:

右鍵FirstRep,選擇copy url
之后到本地右鍵FirstRep目錄,選擇TortoiseSVN,導入

然后輸入剛才的URL,同時也可以輸入項目描述

等待一會

此時在VisualSVN 空白處右鍵,選擇刷新,此時遠程倉庫狀態:

五、從遠程倉庫下載項目
假如我們要下載FirstRep倉庫代碼,到TestDIR
首先右鍵點擊FirstRep文件夾,這時候的右鍵菜單如下圖所示:選擇copy URL toCLipboard

然后再進入TestDIR文件夾,在電腦的空白處單擊右鍵,選擇小海龜的圖標/ 導出

之后彈出對話框,將剛出的地址粘貼到第一個地址欄中,也可以自己指定目錄,然后確定

之后會彈出輸入用戶名和密碼的對話框,輸入新建賬戶和密碼,

確定,然后會彈出檢出界面。

ok下載成功。
六、檢出項目
-
檢出項目是把遠程倉庫下載到本地,可以對項目提交,修改,刪除等。
-
-
下載代碼只是下載到本地,沒有任何權限,相當於只讀。
客戶端去檢出代碼,在桌面空白處單擊右鍵,選擇SVN檢出,

在彈出的對話框中填寫版本庫URL,檢出目錄(自動生成項目同名文件夾),還可以選擇版本

等待一會會提示檢出完成

檢出完成之后,我們打開工作副本文件夾,會看到所有文件和文件夾都有一個綠色的√.如圖:

七、版本回退
首先檢出項目到本地(操作見上面)
基本方法:
1.右擊剛才檢出的FirstRep目錄,TortoiseSVN – show log(顯示日志)

3.右擊你想要回滾到的版本,可以看到兩個選項:“Revert to this revision”和“Revert changes from this revision”。

下面舉例說明
譬如有個文件,有十個版本,假定版本號是1,2,3,4,5,6,7,8,9,10。
Revert to this revision(復原到此版本):
如果是在版本6這里點擊“Revert to this revision”,表示7~10的修改全部作廢,歷史倒退到了版本6那個年代。
Revert changes from this revision(復原到此版本做出的修改):
如果是在版本6這里點擊“Revert changes from this revision”,表示版本6這個歷史事件被抹殺了,只剩下除版本6外的9個歷史事件了。
如果同時選擇了6,7,8三個歷史時期並點擊“Revert changes from this revision”,表示抹殺6~8這仨歷史時期。
同理,如果同時選擇7~10,然后點擊“Revert changes from this revision”,則效果跟在版本6這里點擊“Revert to this revision”是一樣的。
我們選擇復原到此版本,會提示如下

點擊還原

然后右鍵檢出的FirstRep目錄,點擊提交之后便生效了。


其他優質方法
方法1
描述:直接檢出一個你需要的版本,然后用你檢出的版本覆蓋你的最新的版本,
優點:不丟失你新建的文件,同時獲得最新的SVN版本控制。
操作步驟:
(1)右鍵剛剛檢出的版本14文件夾→TortoiseSVN→Show log(顯示日志)→選中需要回滾的版本→右鍵→檢出。

(2)你需要重新指定一個文件夾,否則會沖突,如選擇test1文件夾
、

(3)此時文件夾視圖如下:




(4)然后在新檢出的目錄修改BUG,比如新加一個3.txt文件

(4)最后,右鍵新檢出的目錄,選擇commit提交,用修改文件覆蓋到你的最新版本,即可。



此時遠程倉庫如下

方法2
merge命令
(1)右鍵檢出目錄,選擇TortoiseSVN中的合並(merge)。

(2)選擇合並類型
(3)點擊next,后面什么都不用改,點擊”合並”


文件就回滾到了指定的版本了,commit之后,回滾完成。
方法3
描述:若是你編輯了工程,在沒有提交的前提下,你想放棄這些修改,
操作:直接選擇TortoiseSVN→revert就可以更新到工程的最新的版本。

方法4
描述:若是你想退回到某一個版本,你就可以直接選擇TortoiseSVN→update to reversion。
注釋:這樣就可以把版本回退到你選中的版本去,這種情況下SVN並沒有顯示出有什么沖突,並且新建立的文件也還在。
缺點:在這種情況下你並不能直接在你回退后的版本上進行編輯,因為SVN的版本控制還是在最新的主干上。我們需要update並解決沖突。
(1)右鍵test1,選擇TortoiseSVN→update to reversion,選擇版本15


(2)原先test1,版本19,內容如下

(3)等待更新完成,test1內容圖如下,3.txt已刪除


(4)此時我們修改1.txt,如下

(5)但是此時SVN的版本控制還是在最新的主干上。我們需要 update 並 解決沖突。


方法5
你可以直接選擇revert changes from this revision,這樣的話你可以直接解決沖突並提交。
不過這種方法的不足是,你新建的文件都沒有了,整個工程都回退到之前的版本了。


方法6
描述:可以從日志中回滾到你需要的版本,從日志中選中你需要的版本,然后Update item to reversion就好了,這種情況下SVN不會對新建文件產生沖突,並且新建立的文件也還在,
缺點:在這種情況下你並不能直接在你回退后的版本上進行編輯,因為SVN的版本控制還是在最新的主干上。我們需要update並解決沖突

注意:
向SVN服務器提交源代碼的時候,一定不要提交bin、obj等文件夾,否則會很麻煩。但是web項目的bin目錄除外,但是web項目的bin目錄中的引用其他項目而生成的dll不需要提交。
一個好習慣:
如果項目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,這時候不要簡單從他們的安裝位置引用,而是在你的解決方案下,添加一個Library的目錄,把需要的程序集復制到這里,然后從Library目錄引用。
備注: 本文轉載 Amarao 的CSDN 博客


