項目管理在項目開發活動中起到非常重要的作用,而對於初學者來說學習有一定的難度,且不說如何使用,就是搭建過程恐怕也要費一般周折,介於此下面就通過圖解的方式一步一步詳細的教大家如何使用SVN,你只要耐心的一步步去實踐就能掌握
目錄:
一、SVN介紹
二、SVN服務器安裝
三、SVN客戶端安裝
四、SVN服務配置
五、SVN客戶使用
一、SVN介紹 |
SVN是個自由、開源的版本控制系統,絕大多數開源軟件都使用SVN作為代碼版本管理軟件。
SVN的官方網站http://subversion.apache.org/。目前SVN在開源社區中非常流行的一款版本控制軟件,它是CVS的替代產物。
二、SVN服務器安裝 |
1、下載CollabNetSubversion-server-1.5.6-2.win32
2、執行安裝程序CollabNetSubversion-server-1.5.6-2.win32 ---------SVN服務器軟件
安裝完成后,右鍵菜單出現”SNV Checkout”(可將服務器中的項目簽出到本地),如圖所示
三、SVN客戶端安裝 |
1、 下載TortoiseSVN-1.5.9.15518-win32-svn-1.5.6.msi
2、 執行TortoiseSVN-1.5.9.15518-win32-svn-1.5.6.msi---------SVN客戶端軟件
執行LanguagePack_1.5.9.15518-win32-zh_CN.msi------------SVN客戶端軟件漢化包(可選)安裝完成后,右鍵菜單出現”TortoiseSVN”,如上圖所示
四、SVN服務配置 |
方案1:使用命令和手動修改配置文件
如果感覺麻煩,可跳過后面的使用方案2
1、 執行創建目錄 svnadmin create c:\ Repositories
2、 打開conf目錄下的authz文件
添加組及其用戶accp=user01,user02
為組用戶設置目錄的讀寫權限,組前面要用@符,第一個[/]表示目錄,[/]@accp=rw
3、 編輯passwd文件
格式:用戶名=密碼
user01=1234
user02=1234
4、打開svnserverconf
取消以下幾個注釋
password-db = passwd
authz-db = authz
5、 開機自動啟動SVN
sc create MySVNServer binpath= "\"C:\ProgramFilesSubversion\svnserve\svnserve\svnserve.exe" --service -r c:\ Repositories" displayname= "SVNService" depend= Tcpip start= auto
注意之處
(1)sc是windows自帶的服務配置程序,MySVNServer 是服務的名稱,沒什么用。
(2)參數binPath表示svnserve可執行文件的安裝路徑,由於路徑中的"Program Files"帶有空格,因此整個路徑需要用雙引號引起來。而雙引號本身是個特殊字符,需要進行轉移,因此在路徑前后的兩個雙引號都需要寫成\" 。
(3)--service參數表示以windows服務的形式運行,--r指明svn repository的位置,service參數與r參數都作為binPath的一部分,因此與svnserve.exe的路徑一起被包含在一對雙引號當中,而這對雙引號不需要進行轉義。
(4)displayname表示在windows服務列表中顯示的名字, depend =Tcpip 表示svnserve服務的運行需要tcpip服務,start=auto表示開機后自動運行。安裝服務后,svnserve要等下次開機時才會自動運行。
(5)binPath的等號前面無空格,等號后面有空格 displayname depend start也都一樣。 service前面是--,不是- ,而r前面是-
(6)若要卸載svn服務,則執行 sc delete svnserve 即可。
(7)從“sc”到“auto”是在同一個命令sc,必須寫在同一行。
6、啟動服務:
C:\>net start svnservice
SVNService 服務正在啟動 .
SVNService 服務已經啟動成功。
停止服務:
C:\>net stop svnservice
SVNService 服務正在停止.
SVNService 服務已成功停止。
刪除創建的服務
C:\>sc delete svn svnservice
方案2:使用可視化工具
方案1的確比較麻煩,我們可以使用VisualSVN-Server-1.6.3.msi----------SVN服務配置可視化工具
1、下載
2、執行VisualSVN-Server-1.6.3.msi安裝程序
3、VisualSVN-Server的使用
(1)創建版本庫
主鍵面,表明SVN服務已運行,
Repositories表示版本庫是svn文件共享的核心,它儲存所有的數據,並對數據進行版本化管理。按照文件樹形式存儲數據——包括文件和目錄。安裝SVN Server 時設置版本庫的路徑,默認c:\ Repositories。SVN使用URL來識別版本庫中的資源
在Repositories下創建Repository組織不同項目的版本庫,例如:
(2)創建組和用戶
創建用戶並設置密碼,如圖所示:
創建組並添加用戶,如圖所示:
為用戶設置版本庫的讀/寫權限,選擇其中某個版本庫—>右鍵屬性,彈出權限設置窗口
如圖所示:
選擇組或用戶設置讀/寫權限,建議刪除默認的Everyone的讀寫權限
五、SVN客戶使用 |
軟件開發團體的一員就是SVN的一個客戶,因此SVN客戶端的使用顯得十分重要,主要操作包括import、check out、add 、commit、update
具體操作如下:
5.1 import入庫操作
5.2 簽出操作
5.3 提交添加新文件
5.4 提交文件更新(修改、刪除的文件)
5.6 版本沖突的相關操作
5.7 避免沖突方法——加鎖文件
5.8 版本還原
5.1 import入庫操作
將初始的項目(項目目錄結構、接口、通用組件、靜態頁面等)導入版本庫,操作如圖:
執行import命令彈出import對話框,圖中Import對話框與Visaul SVN Server窗口
在URL of repository中輸入或選擇URL(對應版本庫中的資源),注意URL所對應版本庫中的資源的必須存在(如上圖所示),若不存在要首先在VisualSVN中創建(或使用命令方式svnadmin create c:\ Repositories\mycrm),創建成功后c:\ Repositories\mycrm
產生一些版本庫相關的系統文件和目錄,如下所示:
單擊import對話框的ok按鈕,按提示輸入用戶名和密碼(指在SVN Server設置的賬戶和密碼,可勾選Save authentication以后不再提示),完成后在VisualSVN Server可看到
這表示你的項目已入庫,處於SVN版本控制中
5.2 簽出操作
有兩種方式check out 和 export,區別在於:
① export 方式僅僅是將版本庫的文件拷貝到本地而已。
② check out 方式獲得文件后,本地文件仍處於SVN版本控制中,這一點很重要。這也是主要的一種方式
在本地目錄下,單擊右鍵選擇菜單命令,如圖所示
執行Check out 彈出對話框,如圖所示
URL of repository指你要導出的版本庫,Checkout Directory設定存儲的本地目錄,單擊Ok,導出完成后可看SVN服務器版本庫中文件已遷出到指定的本地目錄下,並且多出.svn目錄這個表示該本地目錄是受SVN服務器版本化控制的,圖標表示文件或目錄處於正常狀態
5.3 提交添加新文件
在項目中增加一個新文件,例如在crm項目中添加一個login.html文件,新增的文件的圖標為,表示該文件沒有入庫SVN服務器無法識別,選擇該文件單擊鼠標右鍵執行add命令,將文件入庫如圖所示
此時文件圖標變為表示該文件已入庫但還未更新,然后執行svn commit命令,從而完成新文件的版本化處理,如圖所示
5.4 提交文件更新(修改、刪除的文件)
操作和添加新文件類似,實際上對於本地變化的文件(包括添加、修改、刪除的文件)都是執行svn commit命令提交給到SVN服務器完成版本化處理(該版本號會遞增)。只不過對於新增文件需要先執行add命令讓SVN服務器識別該文件,表示該文件內容發生變化,可通過菜單show Log命令查看版本的變化,如圖所示
可以看到新增login.html版本號為2。
5.5 更新操作(將SVN服務器中所有版本變化更新到本地)
對於其他用戶(指不是提交變化的用戶),可執行SVN update命令完成將SVN服務器發生版本變化的文件更新到本地
如圖所示:
通常我們(記住每個人就是SVN的本地客戶)在工作時,會不斷執行SVN Update命令以獲取SVN服務器中最新的文件,從而獲得其他人的變更。這也是作為一個項目版本管理軟件最重要的功能之一——及時通知項目的變更
5.6 版本沖突的相關操作
沖突是指團隊協同工作時,當多人修改同一個文件,造成本地文件與SVN系統中的文件版本不一致,而導致文件無法提交的情況。例如:user01對temp.txt文件進行編輯
添加“User01的數據信息”,User02也對temp.txt文件進行修改添加“User02的數據信息”,User01完成后執行SVN Commit,這時User02在執行SVN Commit提交就會產生沖突而提交失敗,如圖所示
這時(遇到沖突時)需要執行SVN Update更新這個文件,產生如圖所示的信息框
並且會看到新增了三個文件
原文件的圖標變為表示內容含有沖突
temp.txt.mine(格式:沖突文件名.擴展名.mine)記錄了你的文件名內容
temp.txt.r7(格式:沖突文件名.擴展名.r版本號)記錄了當前版本的上一個版本內容
temp.txt.r8(格式:沖突文件名.擴展名.r版本號)記錄了當前版本的內容
接下來就是如何解決文件中的沖突,你可以選擇以下方式解決沖突
5.6.1、手動合並沖突文件
打開temp.txt可以看到
說明:<<<<<.mine到 >>>>>.r8之間的就是沖突的部分,======之前的是你的內容,=====之后的是當前版本的內容可根據情況進行取舍,然后刪除注釋符號並刪除新增的新增了三個文件,然后再提交就OK了!
5.6.2、執行Edit conficts命令解決沖突,如圖所示
然后彈出如下窗口
可明顯看出第2行沖突,操作如下:
1、 首先選擇沖突行
2、單擊工具欄按鈕
單擊按鈕:
單擊按鈕:
單擊按鈕:
單擊按鈕:
單擊保存會看到新增的三個文件已自動被刪除(如果仍存在手動刪除即可),這時再執行SVN Commit也OK了!
5.6.3執行revert命令放棄所做的修改,如圖所示
該命令會自動用當前版本替換你的變化,並刪除三個新增文件
5.7 避免沖突方法——加鎖文件
多人同時操作同一個文件是產生沖突的根本原因。
為了減少沖突的發生避免一些不必要的麻煩,通常在變更文件之前執對該文件行一次SVN Update操作,但這樣沖突還是會發生的,一個比較有效的方法是對文件加鎖。其原理很簡單在對文件變更之前先對文件上鎖,這是有兩種可能若文件有鎖(表明有人在編輯)加鎖失敗,若文件沒有鎖則加鎖成功。一個文件上鎖后除了自己別人是不能對文件編輯的,當我們編輯完成之后再解鎖,然后別人就可以加鎖編輯了。這樣就有效的避免了多人同時操作同一個文件時產生沖突
5.7.1加鎖
執行Get Lock…命令,操作如下:
5.7.2 解鎖
對已加鎖的文件執行Release lock命令,如圖所示:
5.8 版本還原
在開發中有時我們希望將文件的變更恢復到之前某個版本,這也是一個項目管理軟件必備的功能,對於SVN執行Update to revision.. 命令即可
比如我們把temp.txt恢復到最初的狀態,目前文件的內容如下圖所示:
我們可以先執行Show log查看temp.txt的版本信息如圖所示
可看出最初添加的文件的版本號18(不是2說明該文件被刪除過,然后又被重新創建),然后執行Update to revision..命令,如圖所示:
單擊Ok按鈕,完成后打開temp.txt文件可以看到文件已恢復到初始的內容了
六、Eclipse SVN客戶端插件安裝 |
Eclipse也提供了對SVN支持,但我個人感覺Eclipse提供的SVN客戶端插件,不如TortoiseSVN好用,但Eclipse是我們開發的環境,因此建議兩個結合起來應用。對於Eclipse提供的SVN客戶端的使用同TortoiseSVN差不多,這里重點介紹一下在MyEclipse安裝SVN客戶端插件,站點地址:http://subclipse.tigris.org/
詳細步驟如下:
6.1 安裝
6.2 從SVN服務器導入項目
6.3 提交文件更新
6.1 安裝
具體操作:
Step 1:選擇Help——>SoftwareUpdates——>add/Remove Soft
單擊ADD按鈕,彈出如下窗口
Step 2:單擊Add Site,
在彈出的對話框中輸入URL: http://subclipse.tigris.org/update_1.6.x,單擊Ok即可
Step 3:選擇內容一路Next即可
6.2 從SVN服務器導入項目
具體操作:
打開eclipse ,選File——>import——>選SVN,如圖所示:
在URL中輸入:版本庫的路徑比如https://jb:8433/svn/mycrm ,單擊完成即可
6.3 提交文件更新
選擇文件單擊右鍵,選擇team提交,即可
6.4 更新操作(將SVN服務器中所有版本發生變化的更新到本地)
選擇文件或目錄單擊右鍵,選擇team-à更新,即可。
出處: http://www.cnblogs.com/jerehedu/
本文版權歸煙台傑瑞教育科技有限公司和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。