天天看點

熟悉Tortoise SVN 用戶端 基本用法

熟悉Tortoise SVN 用戶端 基本用法

1. export 和check out

  export 下載下傳源代碼

http://tortoisesvn.net/downloads

  用法:

  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,作為本地工作目錄。

繼續閱讀