NO IMAGE

首先推薦一個非常好的部落格系列:

專案管理實踐教程

http://www.cnblogs.com/ttzhang/archive/2008/11/02/1324601.html  

 包含內容如下:

專案管理實踐【一】工欲善其事,必先利其器【Basic Tools】

專案管理實踐【二】版本控制【Version
Control Using VisualSVN Server and TortoiseSVN】

專案管理實踐【三】每日構建【Daily
Build Using CCNET and MSBuild】

專案管理實踐【四】Bug跟蹤管理【Bug
Trace and Management】

專案管理實踐【五】自動編譯和釋出【Using
Visual Studio with Source Control System to build and publish website automatically】

專案管理實踐【六】自動同步資料庫【Using
Visual Studio with Source Control System to synchronize database automatically】

 

 

VisualSVN Server以及TortoiseSVN客戶端的配置和使用方法  

http://blog.163.com/[email protected]/blog/static/3714052620105352133906/  此文很重要,摘錄如下:

七、刪除檔案或資料夾,並將修改提交到SVN伺服器

最簡單就是,你直接刪除檔案或資料夾,然後使用SVN Commit提交更新到SVN伺服器。另外一種方法是在你要刪除的檔案或資料夾上點選右鍵=>>TortoiseSVN=>>Delete刪除,此方法也不是直接刪除,而是將該檔案或資料夾的狀態置為刪除,也需要我們使用SVN Commit提交到SVN伺服器後才真正刪除。

說明:實際上,從你把原始碼遷簽入SVN伺服器開始,每一個版本的資料和檔案,就算是你已經刪除了的,也都可以隨時遷出。

以上只是TortoiseSVN最簡單的幾個功能,其實他的功能遠不止這些,其他的功能大家可以在使用的過程中慢慢體會,有些功能我會在下面的教程中使用到,到時候會和大家講清楚用法。

注意:向SVN伺服器提交原始碼的時候,一定不要提交bin、obj等資料夾,否則會很麻煩。但是web專案的bin目錄除外,但是web專案的bin目錄中的引用其他專案而生成的dll不需要提交。

一個好習慣:如果專案中引用了其他的第三方的程式集,比如EnterpriseLibrary、FCKEditor等,這時候不要簡單從他們的安裝位置引用,而是在你的解決方案下,新增一個Library的目錄,把需要的程式集複製到這裡,然後從Library目錄引用,這樣有什麼好處,自己想一想吧!

 

Tortoise SVN 客戶端 基本用法

1. export 和check out 

  export 下載原始碼 

  用法: 

  1、新建一個空的資料夾,右鍵點選它,可以看到TortoiseSVN選單以及上面的SVN Checkout。 

  2、不用管這個Checkout,我們選擇TortoiseSVN選單下的Export…,接著它會讓你輸入url。 

  3、比如輸入【迷宮探寶】的SVN地址是:http://game-rts-framework.googlecode.com/svn/trunk/ 

  4、其他選項不需要更改,Omit externals不要勾選,HEAD Revision選中表示最新的程式碼版本,接著點選OK即可將程式碼匯出到這個目錄中:) 

  check out 意思簽出,雖然和Export的效果一樣是把程式碼從伺服器下載到本地,但是Checkout有驗證的功能,Checkout到某處的程式碼,將會被TortoiseSVN監視,裡面的檔案可以享受各種SVN的服務。 

   

  2 .每次提交程式碼需要注意哪些問題 

  如果你更新了目錄中的檔案,提交程式碼需要用到commit功能,commit的功能不僅僅是上傳,他會和伺服器上面的檔案進行對比,假如你更新了某個檔案而伺服器上面也有人更新了這個檔案,並且是在你checkout之後做的更新,那麼它會嘗試將你的更新和他人的更新進行融合(merge),假如自動merge不成功,那麼報告conflict,你必須自己來手動merge,也就是把你的更新和別人的更新無衝突的寫在一起。 

  commit的時候,最好填寫Log資訊,這樣保證別人可以看到你的更新究竟做了寫什麼。這就相當於上傳檔案並且說明自己做了那些修改,多人合作的時候log非常重要。 

  TortoiseSVN的commit只會上傳原先checkout然後又被修改了的檔案,假如你新加入了某些檔案,需要右鍵點選檔案選擇Add,然後檔案上面會出現一個加號,在下次commit的時候它就會被upload並且被標記為綠色對勾。沒有綠色對勾的檔案不會被commit。 

  假如你需要給帶有綠色對勾檔案改名或者移動它的位置,請不要使用windows的功能,右鍵點選它們,TortoiseSVN都有相應的操作。想象這些檔案已經不在是你本地的東西,你的一舉一動都必須讓Tortoise知道。 

  假如修改了某個檔案但是你後悔了,可以右鍵點選它選擇Revert,它將變回上次checkout時候的情況。或者Revert整個工程到任意一個從前的版本. 

  下面描述在使用Commit時的幾個注意點: 

  ————-如有多個檔案需要同時提交,同時檔案在不同的目錄下,必須找到這些檔案的最短目錄上點選Commit,TortoiseSVN會搜尋被點選目錄以及該目錄下所有的檔案,並將修改變動的檔案羅列在列表中。 

  ————-仔細檢視列表中的檔案,確定哪些檔案時需要更新的,如果不需要更新某個已經變化了的檔案,只需要在該檔案上點選右鍵,選擇還原操作;選擇需要新增的檔案,不要將臨時檔案新增到版本庫中。 

  ————-如遇到檔案衝突(衝突:要提交的檔案已被其他人改動並提交到版本庫中)要啟用解決衝突功能。 

  3. 如何保持本地版本和伺服器版本同步 

  使用update來同步本地和伺服器上的程式碼。同樣是右鍵選擇SVN update,所有的更改就會從伺服器端傳到你的硬碟。注意,假如別人刪除了某個檔案,那麼更新之後你在本地的也會被刪除。 

  如果本地的程式碼已經被修改,和commit一樣會先進行merge,不成功的話就會報告conflict 

  4 如何在同一個在一個工程的各個分支或者主幹之間切換 

  使用tortoise SVN–>switch 

  在URL中輸入branch或trunk的url地址 

  5.如何比較兩個版本之間的差別 

   

  本地更改 

  如果你想看到你的本地副本有哪些更加,只用在資源管理器中右鍵選單下選TortoiseSVN→ 比較差異。 

  與另外一個分支/標籤之間的差異 

  如果你想檢視主幹程式(假如你在分支上開發)有哪些修改或者是某一分支(假如你在主幹上開發)有哪些修改,你可以使用右鍵選單。在你點選檔案的同時按住Shift鍵,然後選擇TortoiseSVN→ URL比較。在彈出的對話方塊中,將特別顯示將與你本地版本做比較的版本的URL地址。 

  你還可以使用版本庫瀏覽器,選擇兩個目錄樹比較,也許是兩個標記,或者是分支/標記和最新版本。郵件選單允許你使用比較版本來比較它們。閱讀第 5.9.2 節 “比較資料夾”以便獲得更多資訊。 

  與歷史版本的比較差異 

  如果你想檢視某一特定版本與本地拷貝之間的差異,使用顯示日誌對話方塊,選擇要比較的版本,然後選擇在右鍵選單中選與本地拷貝比較差異 

  兩個歷史版本的比較 

  如果你要檢視任意已提交的兩個歷史版本之間的差異,在版本日誌對話方塊中選擇你要比較的兩個版本(一般使用 Ctrl-更改),然後在右鍵選單中選比較版本差異 

  如果你在資料夾的版本日誌中這樣做,就會出現一個比較版本對話方塊,顯示此資料夾的檔案修改列表。閱讀第 5.9.2 節 “比較資料夾”以便獲得更多資訊。 

  提交所有修改 

  如果你要在一個視窗中檢視某一版本的所有更改,你可以使用統一顯示所有比較 (GNU 片段整理)。它將顯示所有修改中的部分內容。它很難顯示一個全面清晰的比較,但是會將所有更改都集中顯示出來。在版本日誌對話方塊中選擇某一版本,然後在右鍵選單中選擇統一顯示所有比較。 

  檔案差異 

  如果你要檢視兩個不同檔案之間的差異,你可以直接在資源管理器中選擇這兩個檔案(一般使用 Ctrl-modifier),然後右鍵選單中選TortoiseSVN→ 比較差異。

  WC檔案/資料夾與URL之間的比較差異 

  如果你要檢視你本地拷貝中的任一檔案與版本庫中任一檔案之間差異, 

  譴責資訊之間的比較差異 

  如果你要檢視的不僅是比較差異而且包括修改該版本的作者,版本號和日期,你可以在版本日誌對話方塊中綜合比較差異和譴責資訊。這裡有更多詳細介紹第 5.20.2 節 “追溯不同點”。 

  比較資料夾差異 

  TortoiseSVN 自帶的內建工具不支援檢視多級目錄之間的差異,但你可以使用支援該功能的外接工具來替代。在這裡 第 5.9.4 節 “其他的比較/合併工具”我們可以介紹一些我們使用過的工具。 

  6.提交程式碼時怎樣知道自己改了哪些檔案,別人改了哪些檔案 

  7. 如何知道某個檔案的某一行是誰在哪個版本修改的 

   

  8. 如何為一個SVN主工程建立分支或tag 

  建立分支使用步驟: 

  1、選擇你要產生分支的檔案,點選滑鼠右鍵,選擇[分支/標記…] 

  2、在[至URL(T)]輸入框中將檔案重新命名為你的分支檔名,輸入便於區分的日誌資訊,點選確認。 

  3、在SVN倉庫中會複製一個你所指定的檔案,檔名稱就是你所命名的,但是在你的本地目錄上看不到新建的分支檔名,要使你的檔案更新作用到你的分支上,你必須選擇檔案,點選滑鼠右鍵,選擇[切換…],選擇你重新命名的檔案,點選確定即可。這樣你的本地檔案就和分支檔案關聯上了,不要奇怪,這時本地目錄上看到的檔名仍然為舊的檔名。 

  經驗小結: 

  1、如果操作的檔案之前還未提交,而你又想把檔案提交到新的分支上,記得一定要選擇切換 

  2、SVN分支的管理實際上就是把不同的分支用不同的檔案儲存,因此你在取得新版本的時候會發現,不同分支的最新檔案也會被獲取下來。 

  建立tag操作,相當於把當前的程式碼版本複製一份到其他地方,然後以這個地方為出發點進行新的開發,與原來位置的版本互不干擾。 

  對於branches、tags、trunk這三個目錄,並不是subversion必需的,而是被總結的一種良好的團隊開發習慣,其使用方法為: 

  1、開發者提交所有的新特性到主幹。 每日的修改提交到/trunk:新特性,bug修正和其他。 

  2、這個主幹被拷貝到“釋出”分支。 當小組認為軟體已經做好釋出的準備(如,版本1.0)然後/trunk會被拷貝到/branches/1.0。 

  3、專案組繼續並行工作,一個小組開始對分支進行嚴酷的測試,同時另一個小組在/trunk繼續新的工作(如,準備2.0),如果一個bug在任何一個位置被發現,錯誤修正需要來回運送。然而這個過程有時候也會結束,例如分支已經為釋出前的最終測試“停滯”了。 

  4、分支已經作了標籤並且釋出,當測試結束,/branches/1.0作為引用快照已經拷貝到/tags/1.0.0,這個標籤被打包釋出給客戶。 

  5、分支多次維護。當繼續在/trunk上為版本2.0工作,bug修正繼續從/trunk運送到/branches/1.0,如果積累了足夠的bug修正,管理部門決定釋出1.0.1版本:拷貝/branches/1.0到/tags/1.0.1,標籤被打包釋出。 

  一般建立最初的repository時,就建好這三個目錄,把所有程式碼放入/trunk中,如:要將project1目錄下的程式碼匯入repository,project1的結構就是:project1/branches,project1/tags,project1/trunk,project1/trunk/food.c,project1/trunk/egg.pc……,然後將project1目錄匯入repository,建立最初的資料庫。然後export回project1,作為本地工作目錄。
 
補充內容:

三、版本庫遷移

假如有兩個伺服器A和B,版本庫原來在A伺服器上,現在要移到B伺服器,做法如下

1,將A中的版本庫更新到MYeclipse(注意要刪除掉….\WebRoot\WEB-INF\下的calsses資料夾,因為這裡包含Myeclipse自動編譯檔案,如果不刪除就上傳至版本庫,check出來的專案同步時會報錯),右擊專案-team-disconntect(斷開)-選擇第一項-Yes,目的是將原來使用svn或cvs時專案中的.cvs和.svn檔案清除掉

2,在B上安裝客戶端和服務端,再按上面講的步驟在B的服務端上建版本庫,然後把專案拷貝到B中的某個位置,使用svn客戶端右擊專案,選擇import匯入到版本庫中

【Reference】

1. 
http://www.cnblogs.com/lzhdim/archive/2009/04/23/1442189.html