日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tortoise SVN 版本控制常用操作知识

發布時間:2023/12/2 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tortoise SVN 版本控制常用操作知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Tortoise SVN 版本控制常用操作知識

Posted on 2010-11-26 23:07 szh114 閱讀(5897) 評論(0) 編輯 收藏

今天老大跑過來問我如何把SVN服務器上的當前版本回退到某一個版本上去,我沒回答上來,很失敗,所以現在整理一下Tortoise SVN的操作知識,當然所有內容都來自于網絡,不多廢話:

TortoiseSVN用戶指南中文版(http://www.svn8.com/shouce/tortoisesvn1.5.8/

?

0:SVN的版本號是怎么回事

?? ?svn commit?操作可以作為一個原子事務操作發布任意數量文件和目錄的修改。在你的工作副本中,你可以改變文件內容,創建、刪除、改名和復制文件和目錄,然后作為一個整體提交。

?? ?在版本庫中,每次提交被當作一次原子事務操作: 要么所有的改變發生,要么都不發生,Subversion 努力保持原子性以應對程序錯誤、系統錯誤、網絡問題和其他用戶行為。每當版本庫接受了一個提交,文件系統進入了一個新的狀態,叫做版本,每個版本被賦予一個獨一無二的自然數,一個比一個大,初始修訂號是 0,只創建了一個空目錄,沒有任何內容。

?? ?可以形象的把版本庫看作一系列樹,想象有一組版本號,從 0 開始,從左到右,每一個修訂號有一個目錄樹掛在它下面,每一個樹好像是一次提交后的版本庫“快照”。

不像其它版本控制系統,Subversion 的版本號是針對整個目錄樹的,而不是單個文件。每一個版本號代表了一次提交后版本庫整個目錄樹的特定狀態,另一種理解是版本 N 代表版本庫已經經過了 N 次提交。當 Subversion 用戶討論“foo.c的版本 5”時,他們的實際意思是“在版本 5 時的foo.c”。需要注意的是,一個文件的版本 N 和 M 并表示它必定不同。

?? 需要特別注意的是,工作副本并不一定對應版本庫中的單一版本,他們可能包含多個版本的文件。舉個例子,你從版本庫檢出一個工作副本,最新的版本是 4:

calc/Makefile:4 integer.c:4 button.c:4

?? 此刻,工作目錄與版本庫的版本 4 完全對應,然而,你修改了?button.c?并且提交之后,假設沒有別的提交出現,你的提交會在版本庫建立版本 5,你的工作副本會是這個樣子的:

calc/Makefile:4 integer.c:4 button.c:5

?? 假設此刻,Sally 提交了對?integer.c?的修改,建立修訂版本 6,如果你使用?svn update?來更新你的工作副本,你會看到:

calc/Makefile:6 integer.c:6 button.c:6

?? Sally 對?integer.c?的改變會出現在你的工作副本,你對?button.c?的改變還在,在這個例子里,Makefile?在 4、5、6 版本都是一樣的,但是 Subversion 會把?Makefile?的版本設為 6 來表明它是最新的,所以你在工作副本頂級目錄作一次干凈的更新,會使所有內容對應版本庫的同一修訂版本。

?

1:如何查看SVN上當前代碼庫的最新版本號是多少?

?? ?打開右鍵菜單中的show log,然后看到一系列版本更新歷史,最上面的那一行,即是最新版本號,所謂的head revision。

?

2:如何查看本地SVN管理的代碼庫的當前版本號是多少?

?? ?打開右鍵菜單中的show log,然后看到一系列版本更新歷史,顯示為粗體的那一行即你本地當前的版本。

?

3:如何將本地代碼庫的版本回退到某一個舊版本?

?? ?打開右鍵菜單中的update to revision 在彈出的對話框中進行版本號指定即可,如果選擇head revision則更新為最新版本。

?

4:如何將服務器上的版本回退到某一個舊版本?

?? ?將服務器上的版本回退到某一個舊版本我還沒找到什么比較好的辦法,現在的笨辦法是先更一個舊版本到本地,然后沒辦法直接COMMIT上去,得先把整個文件夾下面的所有.SVN文件全部清除掉,然后覆蓋本地一個版本,再進行COMMIT。

?

5:TortoiseSVN的export 和check out 有什么區別?

  、新建一個空的文件夾,右鍵點擊它,可以看到TortoiseSVN菜單以及上面的SVN Checkout。?
  、不用管這個Checkout,我們選擇TortoiseSVN菜單下的Export...,接著它會讓你輸入url。?
  、比如輸入【迷宮探寶】的SVN地址是:http://game-rts-framework.googlecode.com/svn/trunk/?
  、其他選項不需要更改,Omit externals不要勾選,HEAD Revision選中表示最新的代碼版本,接著點擊OK即可將代碼導出到這個目錄中。?
  而check out 意思 簽出,雖然和Export的效果一樣是把代碼從服務器下載到本地,但是Checkout有驗證的功能,Checkout到某處的代碼,將會被TortoiseSVN監視,里面的文件可以享受各種SVN的服務。?

?

6:每次commit 代碼需要注意哪些問題?
  如果你更新了目錄中的文件,提交代碼需要用到commit功能,commit的功能不僅僅是上傳,他會和服務器上面的文件進行對比,假如你更新了某個文件而服務器上面也有人更新了這個文件,并且是在你checkout之后做的更新,那么它會嘗試將你的更新和他人的更新進行融合(merge),假如自動merge不成功,那么報告conflict,你必須自己來手動merge,也就是把你的更新和別人的更新無沖突的寫在一起。?
  commit的時候,最好填寫Log信息,這樣保證別人可以看到你的更新究竟做了寫什么。這就相當于上傳文件并且說明自己做了那些修改,多人合作的時候log非常重要。?
  TortoiseSVN的commit只會上傳原先checkout然后又被修改了的文件,假如你新加入了某些文件,需要右鍵點擊文件選擇Add,然后文件上面會出現一個加號,在下次commit的時候它就會被upload并且被標記為綠色對勾。沒有綠色對勾的文件不會被commit。?

?

7:本地那些花花綠綠的圖標都分別代表什么意思?

一個新檢出的工作副本使用綠色的對勾做重載。表示 Subversion 狀態正常.

在你開始編輯一個文件后,狀態就變成了已修改,而圖標重載變成了紅色感嘆號。通過這種方式,你可以很容易地看出哪些文件從你上次更新工作副本后被修改過,需要被提交。

如果在更新的過程中出現了沖突,圖標會變成黃色感嘆號。


如果你給一個文件設置了svn:needs-lock屬性,Subversion 會讓此文件只讀,直到你獲得文件鎖。具有這個重載圖標的文件來表示你必須在編輯之前先得到鎖。

如果你擁有了一個文件的鎖,并且 Subversion 狀態是正常,這個重載圖標就提醒你如果不使用該文件的話應該釋放鎖,允許別人提交對該文件的修改。

這個圖標表示當前文件夾下的某些文件或文件夾已經被調度從版本控制中刪除,或是該文件夾下某個受版本控制的文件丟失了。

加號告訴你有一個文件或目錄已經被調度加入版本控制。但還需要COMMIT一下才行。

This icon shows files and folders which are not under version control, but have not been ignored. This overlay is optional.

這個標志表示文件或文件夾不在版本控制之下。


8:SVN檢出代碼的檢出深度指的是什么?

你可以選擇要檢出的深度,它允許你指定子目錄遞歸的深度。如果你只需要大目錄中的幾個子條目,你可以只檢出最高層目錄,然后遞歸的更新選擇的目錄。

全遞歸

檢出完整的目錄樹,包含所有的文件或子目錄。

直接節點,包含目錄。

檢出目錄,包含其中的文件或子目錄,但是不遞歸展開子目錄。

文件子節電

檢出指定目錄,包含所有文件,但是不檢出任何子目錄。

僅此項。

只檢出目錄。不包含其中的文件或子目錄。

工作副本

保持工作副本指定的深度。此選項不用于檢出對話框,但它是其它所有含有深度配置對話框的默認配置。


9:clean up是什么東東?

?? ? 也許由于服務器問題,一個Subversion指令不能成功地完成,你的工作副本因此被滯留在一個不一致的狀態。 那樣的話,你需要在該目錄上使用TortoiseSVN?→?清理命令。在工作副本的根目錄使用它是一個好主意。

?? ? clean up還有一個用處就是,如果一個文件的日期改變了但是它的內容沒有變, SVN不能知道倒底是不是發生了變化,除非跟舊文檔做一個逐字節的比較。如果你有很多文件是這種狀態,那就導致更新操作非常慢,系統響應也會受到影響。這時候運行一個clean up就能夠使那些文件的狀態變為正常,使得以后的檢查速度變好起來。


一個好習慣:如果項目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,這時候不要簡單從他們的安裝位置引用,而是在你的解決方案下,添加一個Library的目錄,把需要的程序集復制到這里,然后從Library目錄引用,這樣有什么好處,自己想一想吧!

?

總結

以上是生活随笔為你收集整理的Tortoise SVN 版本控制常用操作知识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。