第一步:下載Subversion
CollabNetSubversion-server-1.8.5-1-Win32.exe 點擊exe文件
1)安裝時,會出現兩個組件 SVNSERVER Apache ,前者是Subversion的服務器,而Apache是可選的。
2)svn_repository是初始的資源庫,可以隨意指定一個文件夾 , 最後選擇SVN軟件安裝路徑
3)創建資源庫(Respository)
C:\Users\Administrator>svnadmin create F:\SVN\svn_repository
其中svnadmin是svn的管理命令,create表示創建資源庫,而 F:\SVN\svn_repository 表示資源庫所在文件夾路徑
4)設置訪問用戶
在 conf\passwd 文件夾中,最後增加一行代碼 wanhao = 123456
即"用戶名=密碼"方式
5)配置認證和授權文件
svn_repository\conf\svnserver.conf 文件取消 password-db=passwd 這一行前面的 '#'。(注意,這一行前面一定不能留空格!)
6)啓動SVN服務
svnserve -d -r F:\SVN\svn_repository
svnserve 是SVN服務管理的命令 -d 表示該服務是由守護線程啓動的(也叫後臺線程) ,-r F:\SVN\svn_repository 表示啓動資源庫所在的根目錄。
只要不關閉命令行窗口,SVN的服務就一直存在。
第二步使用Subversion 客戶端 TortoiseSVN
1)下載 TortoiseSVN-1.8.5.25224-x64-svn-1.8.8.msi
直接雙擊,安裝的位置可以改變,然後全部使用默認的配置。
安裝完畢後,需要重啓一下電腦。
在任意文件夾下點擊右鍵就可以使用TortoiseSVN菜單了。
2)瀏覽資源庫(先確保啓動了服務器端Subversion服務)
在快捷菜單中選擇 TortoiseSVN|Repo-browser 將彈出輸入資源庫地址的對話框。
輸入URL svn://localhost/ svn就是訪問SVN服務器的協議,localhost爲服務器的地址。若是服務器在局域網中,也可以設置局域網的IP地址。若是裝了Apache服務器,則可以通過 http:// 訪問。
左側爲資源庫中所有文件,右側是文件夾和文件夾的詳細信息,可以通過左側來瀏覽資源庫中各個文件。
3)在資源庫中增加文件夾
在跟路徑下創建三個文件夾 trunk目錄 branches目錄 tags目錄
trunk目錄:程序的主目錄,通常源代碼的一些文件會保存在這裏。
branches目錄:保存的是主程序的分支文件,比如同一個軟件,可能出現分支開發的情況,可以把分支代碼放在這裏。
tags目錄:保存的是源代碼每個版本的備份,比如當軟件版本從version1.0到version2.0時,需要有一份代碼的備份,以備未來能夠隨時找回原來的版本。
4)導入文件到資源庫(import)
選中一個文件夾,右鍵TortoiseSVN import , 便會把這個文件導入到項目中了。被導入的文件便成了共享文件,其他用戶(你賦予權限的用戶)便可以通過客戶端獲得這些共享文件了。
注意,URL of respository 應該填寫具體路徑 如 : svn://localhost/trunk/GreatHomeWork
5)從資源庫中遷出(check out)
先要建立一個與待遷出文件同名文件夾GreatHomeWork 在此文件夾上右鍵SVN Checkout
點擊OK,完成遷出。
發現遷出的文件夾和文件都使用了帶有對勾的綠色圖標,表示從SVN中遷出的,並不僅僅是文件的備份。
6)更新(update)-修改-提交(commit)
一個用戶把項目導出,更改了部分內容,修改完提交。與此同時,另一位朋友也在修改項目,就會發生衝突。但是這樣做效率得到提高,一般都使用這種方式。
先點擊導出的項目,右鍵 SVN Update ,更新資源庫。這樣可以保證在修改之前使用的是最新的版本。
更新的文件遊玉友不同的更新類型,所以會使用不同的顏色標識。
紫色:資源庫中新建的文件。
深紅色:資源庫中的是一個刪除或替換的文件。
綠色:資源庫中與本地的文件的合併。
紅色:資源庫中的文件與本地的文件有衝突,需要解決衝突。
黑色:其它的默認文件。
紅色表示有衝突的文件,需要自行查找。
新建文件,然後 TortoiseSVN|Add 選項。客戶端便會認爲這是一個新建的文件,但注意到此時並沒有真正添加到資源庫中。
刪除文件,選中待刪除的文件,TortoiseSVN|Delete 命令。
修改文件,修改後的文件,會使用一個紅色的圓點標註,這樣便可以看到每個文件與資源庫文件的狀態了。
在未提交之前,用戶所有的操作都只是針對本地的操作,而並沒有真正地更新到資源庫中。
一旦完成修改,用戶要儘早提交,這樣可以儘量避免衝突。
提交右鍵SVN Commit... ,然後會彈出一個Check確認對話框,在這個對話框中,選中的爲打算提交的,沒選中的爲不提交的。
7)鎖定(lock)-修改-提交-解鎖
鎖定:選中待鎖定的文件夾,右鍵TortoiseSVN|Get Lock命令。
被鎖定的文件,只有被解鎖,其他的用戶纔會繼續修改這個文件。
解鎖:選中已經鎖定的文件 , 右鍵TortoiseSVN|Release lock 命令。
文件被鎖定的過程中,其他的用戶不知道文件已被鎖定,只有當其他用戶提交時纔會知道被鎖定。所以爲了避免其他用戶修改一個已經被鎖定的文件,用戶應當儘量多執行Update操作,這樣才能獲取到最新資源庫中的文件狀態。
8)異常處理
有兩個人同時修改了文件,第一人先提交,第二人提交便會發生錯誤。因爲提交時已經不是最新版本了,需要提交之前Update一下。
一旦發生衝突,SVN會在衝突的文件中這樣標註:
<<<<<<< .mine
#這是我做的修改=======
#這是我爲sceond做的修改>>>>>>> .r11
========前的內容是用戶自己修改的,後面的爲版本庫中已經有的。同時,會在衝突的文件下自動生成三個文件
以下的 “。” 實際指 “.” ,爲了使其更明顯
1. 衝突的文件名。衝突的文件類型。mine 裏面放着第二個人已經修改過的文件。
2. 衝突的文件名。衝突的文件類型。更新備份前的基礎版本 這就是兩個人修改之前的文件。
3. 衝突的文件名。衝突的文件類型。第一個人更新後存在版本庫的文件 也就是第一個人修改完的文件。
比如我第二次修改了log4j.properties commit發生錯誤。mine表示第二個人修改後的文件 r12表示最開始的文件 r13即代表版本庫最新的文件。
解決衝突的辦法:
選中第二個人已經修改的文件(版本最新的文件)和我(.mine)的文件, TortoriseSVN | Diff 命令。
此時會彈出 TortoiseMerge 工具,把兩個文件不一致的地方顯示出來,然後便可以找出衝突的原因。
可以手動修改合併衝突的文件,然後設置爲已解決(Resolved),然後便允許提交。
或者將衝突的文件恢復(Revert)到最新版本,然後在最新版本的基礎上將解決衝突後的代碼放進去,然後提交。但需注意,更新本地文件版本時,本地的修改會丟失,所以要事先備份下文件。
注:更新(Update)與恢復(Revert)都是從資源庫中獲得最新版本,但他們之間最大不同是恢復不會保存本地的修改,所以要慎用。
some tips:
查看修改日誌,在要修改的文件上右鍵 TortoiseSVN|Show log ,便可以查看修改日誌了。
建議每次上傳都寫上log,對他人,對自己都有好處,也就耽誤自己1分鐘時間。
可以比較日誌,同時選中兩個日誌記錄,Compare revisions
恢復到以前版本,在要恢復的文件上右擊,選擇Update to revision ,然後便可以選擇自己想要恢復的版本號進行恢復。
設置功能,任選一個文件,右鍵 TortoiseSVN|Settings 命令。
與MyEclipse集成
1.下載 site-1.10.9.zip ,然後解壓到 MyEclipse 10\dropins 重啓myeclipse即可。
2.切換視圖到 SVN Repository Exploring 。
3.將myeclipse中的項目與資源庫中的文件同步。
① File ->New ->Other->SVN->Checkout Projects From SVN
②選擇之前創建過的資源庫,並選擇資源庫中的項目名,單擊Finish
③然後便可以使用Subclipse其他的客戶端功能了。比如提交,右鍵點擊項目,選中team,commit等。