天天看點

Eclipse配置SVN

Eclipse安裝SVN

1 點Eclipse help菜單---> software update

2 選Available Software頁籤,點選add site 建立新的位址資源,在位址裡面填 http://subclipse.tigris.org/update

3 接下來就是安裝了

建立svn倉庫

1 在eclipse裡面點windows菜單,然後選 show view--> other , 然後選擇svn下的資源庫

2 在打開的視窗裡面點選右鍵,選 "建立SVN資源庫", 位址填https://performancetestingtool.googlecode.com/svn/trunk

把新項目上傳到SVN

1 在要上傳的項目 點選右鍵 選擇team ->選擇share project-> 選擇svn -> 然後選擇開始建立的主幹倉庫,上傳的項目最好是穩定的版本(因為上傳的地方是主幹)

合作開發

1 合作開發的開發人員每個人都先連上主幹,然後給主幹建立一個分支,再從分支上面導入項目,自己的開發都放在分支上面來開發

2 等到大家子產品都那個完成之後,先讓一個人merge到主幹,接下來一個一個人來merge

svn 合作開發 版本管理

用subversion(SVN)進行版本管理 關鍵字: SVN

1。版本管理約定

程式員編寫程式的過程中,每個程式都會有很多不同的版本,這就需要程式員很好的管理代碼,在需要的時間可以取出需要的版本,并且每個版本都有一個完整的說明。
我們使用Sub Version(簡稱SVN)作為版本管理工具。這裡着重介紹SVN作為跨平台的多人協作使用方法。在多個程式員管理同一段代碼的過程中,版本的管理顯得尤為重要,使用SVN可以友善的進行分支、合并,記錄下所有的版本。

2。SVN基本配置

在開始某項軟體、文檔的開發與撰寫時,首先由配置管理負責人建立SVN倉庫、使用者名及其權限,并通知相關人員SVN倉庫位址、SVN倉庫負責人。
2.1 配置強制注釋
SVN倉庫的負責人把工程的tsvn:logminisize設定為1,以便強制注釋。設定方法:在你的工程檔案夾右鍵->屬性中,進入 Subversion标簽,選中tsvn: logminisize,確定複選框recursive選中,然後點選Set按鈕把它的值設為1,其意思是指送出的注釋最短長度為一個字。如圖:

3. SVN軟體配置

3.1 忽略檔案
在SVN 的Setting的General中,設定需要忽略的檔案以便忽略掉一些臨時的、無用的檔案,常被忽略的檔案有.opt .ncb .suo .plg .pch.idb .pdb .scc .obj Debug Release .o .bin .out .ilk .aps debug release .clw .bak。每個程式員可以根據自己的需要進行修改忽略檔案,上面隻是使用VC++與Tornado程式設計時常用的一些忽略檔案。

3.2 合并比較工具

在Merge Tool中可以選擇用來合并的工具,強烈推薦用Araxis Merge。在Setting->Diff中填入"C:\Program Files\Araxis\Araxis Merge v6.5\Merge.exe";在Setting->Merge的選項中,填入"C:\Program Files\Araxis\Araxis Merge v6.5\Merge.exe" %theirs %mine %merged ;其中"C:\Program Files\Araxis\Araxis Merge v6.5\Merge.exe"是指合并工具的路徑,%theirs %mine %merged分别指..将要合并到主幹的分支,主幹,及合并後的結果。

4.倉庫目錄結構

SVN倉庫的負責人規劃好倉庫的目錄結構。推薦的目錄結構如下圖所示。

倉庫的一級目錄隻有兩個,分别為code和doc。其中,doc主要用來放置先期的文檔,code主要用來放置工程的代碼,也可以包含後期的文檔。

倉庫的二級目錄隻可以是branch與trunk兩個目錄,分别存放主幹與分支。trunk目錄下直接存放工程檔案。branch目錄下包括一些子目錄分别對應各個分支。

4. 本地目錄結構

從SVN倉庫中取出代碼時,一定不要把整個倉庫取出來,而應該隻取出trunk目錄,或隻取出branch下的某個分支目錄(比如上圖中的svn:\\code\branch\xw_051206)。

5.合并開發方法

5.1 合并開發基本流程
一個項目會有多個人共同合作開發完成。基本流程是:

各開發成員建立自己的分支,并在此分支上開發 各開發成員把分支合并到主幹上并形成較為穩定 各個成員重新從主幹上建立新的分支,在此分支上開發(即回到第一步) 循環往複,直到工程結束。 下面我用一個例子來說明合作開發的基本流程。 現在xb與lzj兩個開發人員要共同開發一個工程onlytest,其這個工程的主幹的SVN倉庫位址如下圖。

5.2 分支的建立

xb與lzj分别在onlytest這個工程中建立兩個分支,分别為xb 051115和lz_051115。
在這裡分支命名要采用[姓名縮寫6個數的日期字尾(可選)]的形式,比如xb_051208_1,xb_051212之類的。建立完分支後我們可以看到這個工程的目錄結構如下圖所示:
建完之後, xb和lzj分别在本地取出對應的分支進行開發。

5.3 分支的合并

當程式到達一個比較穩定的階段,就需要把分支合并到主幹上,下面講述一下合并的流程。在本節中繼續使用上一節中所示的工程與SVN倉庫講解。
5.3.1 xb與lzj分别修改自己分支上的代碼
現在,主幹上的test_SVN.txt是空文檔。由xb與lzj修改送出後,兩個分支中test_SVN.txt分别如下兩圖所示:
5.3.2 xb先把主幹check out到本地。然後在主幹的目錄上右鍵選擇svn->merge,彈出如下視窗:
xb先把主幹check out到本地。然後在主幹的目錄上右鍵選擇svn->merge,彈出如下視窗:
此對話框的含義是把From指定的分支版本到To指定的分支版本之間的差異合并到主幹上。
在這裡分支選的是xb_051129。版本号的標明方法是點選From中的Show Log,在Log視窗中按住Ctrl鍵,點選選擇”made a copy”之上的那個版本,以及最頂上的那個版本,如圖 2.11所示。然後點選确定回到上圖中的對話框,會自動填寫From與To中的Revision号。
然後直接點選merge進行合并,你也可以通過dry run來看是不是兩者之間有差異。由于沒有其它人修改主幹,是以合并的很順利,下圖是xb_051115與主幹合并後的結果。合并完畢之後,由xb對主幹進行送出。

5.3.3 将lzj_051129分支合并到主幹,解決沖突

xb合并完畢之後,lzj要将他的分支合并到主幹上去,方法同上。但是由于xb已經修改過主幹,是以産生了沖突,會彈出一個沖突對話框。輕按兩下對話框中的産生沖突的檔案名,就可以調出工具對此檔案進行合并,下圖是我們用merge工具顯示的界面。

首先比較第一個視窗與第二個視窗,把結果修改合并到第二個視窗。 然後確定光标處于第二個視窗時,點選上圖中紅色圈圈所示的按鈕。這樣會把第二個視窗的内容全部複制到第三個容口。之後儲存,退出。 然後在工程目錄上點右鍵,進行SVN->Resolved。這樣會删除無用的臨時檔案。 最後送出所作的修改,并添加詳細的注釋。

6. 其它注意事項

6.1 SVN中的标簽 與CVS不同,使用SVN時不用專門為目錄添加标簽,因為SVN也對目錄進行版本管理。

我們在送出時寫好注釋(比如重要的版本送出時使用051201之類的日期作為開頭),就可以通過注釋來查找比較重要的目錄版本号,相當于CVS或VSS中的标簽。

另外,每個工程都會有一個版本說明檔案,通過此檔案可以查找關鍵版本。

6.2 檔案的删除、移動與重命名 你可以重命名、移動或删除你的檔案或檔案夾,但請使用SVN進行這些操作,否則之前的版本資訊會丢失。

使用SVN删除、移動與重命名檔案夾的方法是在檔案/檔案夾上點右鍵進行SVN操作,或直接在資源浏覽器中使用右鍵拖放(會彈出SVN選項)。

檔案的删除、移動與重命名之前,必須保證工作目錄是最新的版本;進行這些操作之後,需要進行送出。

6.3 版本的回退

在代碼的編寫過程中,難免會有不盡人意的地方,你也許需要回退到某一個版本,但是在這個過程中可能有一些檔案你想保留,也有一些檔案你不想保留,這就牽扯到很複雜的版本管理過程,在這裡給大家推薦幾種方法。
6.3.1 若是你編輯了工程,在沒有送出的前提下,你想放棄這些修改,你可以直接選擇revert就可以更新到工程的最新的版本。
6.3.2 若是你想退回到某一個版本,你就可以直接選擇update to reversion如圖,這樣我們就可以把我們的版本回退到你選中的版本去,這種情況下SVN并沒有顯示出有什麼沖突,并且建立立的檔案也還在,但是在這種情況下你并不能直接在你回退後的版本上進行編輯,因為SVN的版本控制還是在最新的主幹上。我們需要 update并解決沖突。
6.3.3 你可以直接選擇revert changes from this revision如圖,這樣的話你可以直接解決沖突并送出。不過這種方法的不足是,你建立的檔案都沒有了,整個工程都回退到之前的版本了。
6.3.4 我推薦的一種方法是,直接export一個你需要的版本,然後用你export的版本覆寫你的最新的版本,這樣你就可以不丢失你建立的檔案,同時獲得head的SVN控制檔案。

6.4 送出的時機

每個工程會有很多個小子產品,當某個子產品達到穩定的時候,你就需要送出一次,以免寫下個子產品代碼的時候出現不可恢複的錯誤。
每一次送出需要前,需要通過pclint檢查,保證是一個編譯沒有錯誤的版本。當送出比較穩定的版本的時候,同時要修改你的版本号。
送出的時候要添加注釋,若多人共同修改同一段代碼我們就需要為注釋添加上更加詳細的說明
版本說明檔案為xml表格,可用excel編輯,它會記錄下關鍵的版本資訊。
版本說明檔案内容如下表。釋出版本是指使用者對外公布的版本号,後文中有較長的描述;Revision是SVN内部的工程檔案夾的版本号。一個釋出版本可能對應多個Revision。

繼續閱讀