一、SVN簡介:
為什麼要使用SVN?
程式員在編寫程式的過程中,每個程式員都會生成很多不同的版本,這就需要程式員有效的管理代碼,在需要的時候可以迅速,準确取出相應的版本,适合團隊開發中使用,提高代碼的整合效率和開發效率。
Subversion是什麼?
SVN的全稱,它是一個自由/開源的版本控制系統,一組檔案存放在中心版本庫,記錄每一次檔案和目錄的修改,Subversion允許把資料恢複到早期版本,或是檢查資料修改的曆史,Subversion可以通過網絡通路它的版本庫,進而使使用者在不同的電腦上進行操作。
二、SVN伺服器搭建和用戶端的安裝
個人推薦使用VisualSVN server 服務端和 TortoiseSVN用戶端配合使用
安裝過程自行學習腦補......
三、基本操作
1.svn伺服器與用戶端工作流程:

2.TortoiseSVN常見的圖示
: 一個新檢出的工作副本使用綠色的對勾做重載。表示Subversion狀态正常。
: 在你開始編輯一個檔案後,狀态就變成了已修改,而圖示重載變成了紅色感歎号。通過這種方式,你可以很容易地看出哪些檔案從你上次更新工作副本後被修改過,需要被送出。
: 如果在更新的過程中出現了沖突,圖示會變成黃色感歎号。
: 如果你擁有了一個檔案的鎖,并且Subversion狀态是正常,這個重載圖示就提醒你如果不使用該檔案的話應該釋放鎖,允許别人送出對該檔案的修改。
: 加号告訴你有一個檔案或目錄将被排程加入版本控制庫中。
3.TortoiseSVN用戶端基礎操作
① SVN檢出(SVN Checkout): 在檔案夾或者目錄下單擊右鍵 –> 選擇SVN檢出,如下圖所示
點選SVN Checkout後,在彈開視窗的版本庫url框中輸入版本庫的目錄位址,然後點選确定,如下圖:
再點選ok按鈕後,如下圖:
在彈出的對話框中輸入使用者名和密碼,驗證成功後,項目檔案開始從遠端伺服器下載下傳到本地工作目錄中。
點選ok按鈕後,即可擷取完成項目檢出到本地。
② SVN還原(SVN Revert):右擊想要回退的檔案或者檔案夾,在TortoiseSVN彈出菜單中選擇”Update to reversion…” 然後會彈出一個視窗,如下:
比如說我們要回退到第10個版本隻需要在Revision中填寫相應的版本号,然後點選ok即可。
③SVN更新(SVN Update):更新本地代碼與SVN伺服器上最新的版本一緻,隻要在需要更新的檔案夾上點選右鍵或者在檔案下空白處點選右鍵,選擇”SVN Update”。
④SVN送出(SVN Commit):Svn的送出是将在工作空間做的修改進行送出,包括檔案内容的修改,檔案或目錄的添加,删除,命名,移動等操作。如下圖所示:
⑤ 顯示日志(Show log):通過此功能可以查到誰,什麼時候,對那個目錄下的那些檔案進行了那些操作,如下圖:
四、SVN沖突解決方案
為什麼會産生沖突代碼呢?原因很簡單就是因為不同的人,同時修改了同一個檔案的同一個地方,這時候,他送出了,我沒有送出,我就送出不了,這個時候我們要進行先更新,然後在進行送出即可,那如果産生沖突,會生成如上3個檔案。
對于每個沖突的檔案Subversion在你的目錄下放置了三個檔案:如下:
1.txt.mine 是沖突前自己的修改後的檔案。
2.1.txt.r4 是沖突前本地的版本檔案
3.1.txt.r5 是别人趕在你之前送出的最新版本
方案一:送出代碼前,将代碼備份在本地,出現沖突後,将沖突檔案删除,在更新最新版本,将備份檔案代碼合并到最新版本。
方案二:出現沖突,使用編輯沖突,将自己的修改的檔案與最新版本的檔案代碼對比,手動合并後,标記為解決沖突,再送出。
注意事項:
1、eclipse 內建SVN 操作與用戶端基本一緻。
2、.svn這個隐藏目錄記錄着兩項關鍵資訊:工作檔案的基準版本和一個本地副本最後更新的時間戳,千萬不要手動修改或者删除這個.svn隐藏目錄和裡面的檔案!!,否則将會導緻你本地的工作拷貝(靜态試圖)被破壞,無法再進行操作。