版本控制軟體 tortoiseSVN的基礎使用

2022-04-02 15:23:07 字數 4240 閱讀 3397

零 基本功能介紹... 2

三 新增檔案及目錄到伺服器中... 4

四 檔案對比... 13

4.1 檔案回溯... 13

4.2 歷史版本對比... 15

五 取消繫結

六 現在檔案如何和伺服器關聯

常見的版本控制軟體有vsscvssvn

vss(visual source safe)為微軟的產品,較為易學易用,使用微軟的產品進行開發通常都用這個,但是vss只能在windows平台上執行,並且不是免費軟體,安全性也不高,因此應用並不太廣泛。

svn(subversion)作為cvs的重寫版和改進版,其目標就是作為乙個更好的版本控制軟體,取代cvs.總的來說,cvs在發展的過程中逐漸失去優勢,已經不再適合現代開發,目前,絕大多數cvs服務已經改用svn.

目前流行的google code開源專案託管平台就是使用svn進行版本控制。

同步不狀態,為資料夾左下角有乙個對勾

未同步狀態,為資料夾右下角有乙個嘆號。

svn的存放檔案方式是採用差異備份的方式。也就是說,他只會備份有不同的地方。所以很省硬碟空間。此外,他也可以針對所謂的非文字檔案進行差異備份

怎麼樣在windows下面建立svn repository?

假設您已經安裝前面所提及的tortoisesvn這套軟體,現在我們先告訴您如何用自己的硬碟或是隨身碟當作svn repository的存放地點。如果您只想知道如何訪問乙個已經建立好的svn server上面的repository,請直接跳過本節。

假設您的要放置repository的地方是e槽。您需要先建立乙個空的目錄。以下面的例子而言,我們在e槽下面建立了乙個名為svn_repo的目錄。 svn並沒有限定repository目錄名稱。您可以建立任何您自己喜歡的名稱。但是,強烈建議勿使用非英文的檔名(如中文或日文)。

透過您的檔案管理員,在e:\svn_repo的icon上面,按下滑鼠右鍵後,選擇tortoisesvn->create repository here。

接著,您會看到如下的乙個視窗,這個視窗主要是問您,您希望使用的repository資料庫格式是fsfs還是bdb。基本上,請選擇fsfs就可以了。按下ok按鈕後,您將可以看到下乙個畫面。

這就表示您的svn repository已經成功的建立了。接下來就是要把您的檔案備份進來。日後,只要需要使用這個repository,我們就可以使用 file:///e:/svn_repo表示它。svn就是透過這種url的方式到如何與repository取得聯絡。各種url的格式如下:

file:///磁碟驅動器|/repository所在目錄/子目錄

http://賬號@伺服器名稱/

repository所在目錄/子目錄

https://賬號@伺服器名稱/

repository所在目錄/子目錄

svn+ssh://賬號@伺服器名稱/

repository所在目錄/子目錄

其中,http表示使用一般的超文字傳輸通訊協議。https表示使用加密的超文字傳輸通訊協議。svn+ssh表示透過ssh加密通訊的管道,進行訪問。

假設您開發的程式將放在前面建立的working目錄下面的my_ prj子目錄。如下所示:

3.1假設您已經編輯好檔案,準備把他們放到svn的repository中。您需要在my_prj目錄的icon上面,按滑鼠右鍵,並且選擇tortoisesvn->add:

3.2在點選svn commit,tortoisesvn會把準備要加入的檔案及目錄,顯示給您看。打勾的就是等下要被加入到repository中的。如果您有某些檔案或是目錄不想在這次加入,您可以讓該專案不要被勾選。如此,它就不會被加入到repository去。

在recentmessages 中新增修改描述內容,按下ok後,傳送完畢。

有一點要注意的是,這個add的動作並未真正的將檔案放到repository中。僅僅是告知svn準備要在repository中放入這些檔案。此時,如果您透過檔案管理員檢視這些檔案,應該會看到乙個白色紅底的驚嘆號在檔案icon的下方。

這是表示您的working目錄中的檔案與repository中的檔案還沒有同步。現在我們要多乙個commit的動作。讓這些檔案真正的放入到 repository中。您可以在my_prj目錄的icon上或者是my_prj目錄內的空白處按下滑鼠右鍵,叫出如下的選單,並且選擇svn commit。

緊接著,您將會看到如下的視窗出現:

在這個視窗中,下半部會列出乙個清單,讓您清楚的了解到哪些檔案要被commit到repository中。同樣的,如果您有檔案不想在這個時候commit到repository,您可以取消選取的檔案,這樣他們就不會被commit到repository中。

在檔案列表的上方是message欄,您可以在欄中輸入本次commit的目的。這是十分重要的字段,當您commit的次數很多時,可以靠這個訊息知道版本與版本之間的差異。當您輸入好message,按下ok之後,就可以看到如下的視窗出現,通知您已經將指定的檔案送到repository中。

您可以到先前的folder中,確定是否所有的檔案icon都有如下的綠色勾勾在上面,這樣代表您的檔案都正確無誤的到repository中。

有時候,因為windows本身的問題,您可能會看到有些icon沒有變成綠色的勾勾。此時,多按f5幾次,應該就可以解決這個問題。如果,仍然不行,表示您之前的commit動作真的有問題。請仔細檢查之前的commit動作是否正確。

有時我們需要回溯至特定的日期或是版本,這時就可以利用svn的update

to revision的功能。在想要更新的檔案或目錄icon上面按下滑鼠右鍵。並且選擇tortoisesvn->update to revision。

在這個update視窗中,您可以選擇更新到最新版本(head)。也可以選擇更新到某個指定的版本(revision)。當然,您可能早就記不起來正確的版本號碼。可能只隱約的記得大概在什麼時間。沒關係,按下show log按鈕,您就可以回顧歷史了。

所有您曾經做過的動作,及其日期與對應的版本都會列在這個視窗上面,只要在你想要的版上面點一下,讓他變成反白,然後按下ok。這個版本就會自動填入update視窗中的revision欄位中。您只要再按下一次ok,這個版本就會被取出來到您的硬碟中。

選中比對的檔案右擊tortoisesvn-> show log-> 選中比對兩個檔案-> compare

revisions

為何需要更新?由於版本控制系統多半都是由許多人共同使用。所以,同樣的檔案可能還有人會去進行編輯。為了確保您工作目錄中的檔案與repository中的檔案是同步的。建議您在編輯前都先進行更新的動作。在此,我們都先假設您已經將檔案check out過一次。現在要說明的是如何在乙個check out過的目錄進行update。在想要更新的檔案或目錄icon上面按下滑鼠右鍵。並且選擇svn update。

正常的狀況下,您可以看到如上的視窗。在這個視窗中會顯示有哪些檔案更新了。如果沒有看到檔案更新的相關資訊,這表示您的目錄中的檔案已經是最新的,所以無須進行更新。

copy/tag/branch/release檔案或目錄

確認您要處理的檔案或是目錄已經是repository中最新的版本。

在要處理的目錄或是檔案上面按下滑鼠右鍵,選擇tortoisesvn->branch/tag。

在to url處輸入您要的目的地。branch:要產生乙個分支。以區別與trunk不同的開發。

tag:要形成乙個標記,表示重要的milestone。

release:表示乙個已經正式的release的紀錄。

其它:進行乙個複製(copy)。

5.1 svn update error: please execute the

'cleanup'

原因有可能是

1. 有檔案正在更新或上傳,該資料夾被鎖定。

2. 更新或上傳的時候動作沒有完成,導致本地存在鎖定狀態沒有釋放。

解決方法是

1. 對於上面的第1種情況,等待你所做的操作完成。

2. 對於第2種情況,把對應的檔案來里的.svn裡面的lock檔案刪除。

五 取消繫結

取消資料夾的svn繫結:

點選資料夾--右鍵---選擇tortoisesvn-->exprot.選擇自己就可以。

六 解除後如何再次關聯

和管聯相同,注意目錄的改變,要和以前一樣。再次修改的在目錄上cleanup。

七 刪除

**於版本介紹

鎖介紹使用介紹

git版本控制軟體

git 的三大區 工作區 暫存區 分支區 使用者資訊的配置 git config global user.name linkto git config global user.email yufucheng email.com git提交資訊的過程 git status git add filena...

版本控制軟體 Git

檢視配置列表git config list 設定使用者名稱和郵箱位址 git config global user.name 使用者名稱 git config global user.email 郵箱位址 基礎命令 初始化倉庫git init 建立目錄 mkdir aaa 建立檔案 touch aa...

軟體開發版本控制

一.專案包含3個版本 1.主幹trunck 開發版本,最新的版本,在該版本上開發新功能 2.分支branch 發布版本,該版本是已經測好的可以隨時用於下一次更新的版本 3.tag 該版本是線上同步版本 二 關於修改和提交 1.對於新功能,直接在主幹上修改和測試 2.對於線上的問題,tag修好後合併到...