天天看點

SVN的使用方法

一、VisualSVN Server的配置和使用方法【伺服器端】

安裝好VisualSVN Server後【安裝過程看這裡】,運作VisualSVN Server Manger,下面是啟動界面:

SVN的使用方法

好的,下面我來添加一個代碼庫【Repository】,如下圖:

SVN的使用方法

按上圖所示,建立新的代碼庫,在下圖所示的文本框中輸入代碼庫名稱:

SVN的使用方法

注意:上圖中的CheckBox如果選中,則在代碼庫StartKit下面會建立trunk、branches、tags三個子目錄;不選中,則隻建立空的代碼庫StartKit。

點選OK按鈕,代碼庫就建立成功了。

SVN的使用方法

建立完代碼庫後,沒有任何内容在裡面。我會在這個教程的第二部分說明如何遷入源代碼。

下面,我們開始安全性設定,在左側的Users上點選右鍵:

SVN的使用方法
SVN的使用方法

輸入上面的資訊,點選OK,我們就建立一個使用者了。按照上面的過程,分别添加使用者Developer1、tester1、manager1,好了,我們開始添加這些使用者到我們剛才建立的項目裡:

SVN的使用方法

點選上圖中的"Add..."按鈕,在下圖中選擇我們剛才添加的使用者,點選OK按鈕:

說明:大家可能注意到了下圖中的Groups,是的,你也可以先建立組,把使用者添加到各個組中,然後對組進行授權,操作比較簡單,在此略過。

SVN的使用方法

按照下圖所示,分别對使用者【或組】進行授權:

SVN的使用方法

點選"确定"按鈕,上面的使用者就具有了通路StartKit代碼庫的不同權限。

因為使用者starter在團隊中是新來者,不希望他向代碼庫中送出新代碼,是以他隻能讀取代碼庫中的代碼,不能送出代碼。tester1是測試人員,不負責代碼編寫,是以也是隻讀權限。而Developer1和manager1是開發人員和項目經理,自然具有讀、寫的權限。

在實際的項目開發過程中,Developer和tester往往不可能隻有一個人,這時候使用組來授權更加友善,這個大家可以自己練習一下。

二、TotoiseSVN的基本使用方法

在 項目管理實踐教程一、工欲善其事,必先利其器【Basic Tools】中,我已經講解了怎樣安裝TortoiseSVN。在上面的講解中已經講了怎麼使用VisualSVN Server了,今天我要講的是,TortoiseSVN的簡單使用方法。

一、簽入源代碼到SVN伺服器

假如我們使用Visual Studio在檔案夾StartKit中建立了一個項目,我們要把這個項目的源代碼簽入到SVN Server上的代碼庫中裡,首先右鍵點選StartKit檔案夾,這時候的右鍵菜單如下圖所示:

圖2-2-1

SVN的使用方法

點選Import,彈出下面的窗體,其中http://zt.net.henu.edu.cn 是伺服器名,svn是代碼倉庫的根目錄,StartKit是我們在上個教程中添加的一個代碼庫:

說明:左下角的CheckBox,在第一次簽入源代碼時沒有用,但是,在以後你送出代碼的時候是非常有用的。

圖2-2-2

SVN的使用方法

點選OK按鈕,會彈出下面的窗體,要求輸入憑據:

圖2-2-3

SVN的使用方法

在上面的窗體中輸入使用者名和密碼,點選OK按鈕:

圖2-2-4

SVN的使用方法

如上圖所示,好了,源代碼已經成功簽入SVN伺服器了。這時候團隊成員就可以遷出SVN伺服器上的源代碼到自己的機器了。

二、簽出源代碼到本機

在本機建立檔案夾StartKit,右鍵點選Checkout,彈出如下圖的窗體:

圖2-2-5

SVN的使用方法

在上圖中URL of Repository:下的文本框中輸入svn server中的代碼庫的位址,其他預設,點選OK按鈕,就開始簽出源代碼了。

說明:上圖中的Checkout Depth,有4個選項,分别是遷出全部、隻簽出下一級子目錄和檔案、隻簽出檔案、隻簽出空項目,預設的是第一項。上面的例子中,我們也可以使用web的方式通路代碼庫,在浏覽器中輸入http://zt.net.henu.edu.cn/svn/StartKit/

這時候也會彈出對話框,要求輸入使用者名和密碼,通過驗證後即可浏覽代碼庫中的内容。

搞定!源代碼已經成功簽出到剛才建立的StartKit目錄中。

打開StartKit目錄,可以看到如下圖的檔案夾結構:

圖2-2-5

SVN的使用方法

一旦你對檔案或檔案夾做了任何修改,那麼檔案或檔案夾的顯示圖檔機會發生變化。下圖中我修改了其中的二個檔案:

圖2-2-7

SVN的使用方法

大家看一下不同狀态所對應的圖檔:

圖2-2-8

SVN的使用方法

我們已經知道怎麼将源代碼簽入到SVN伺服器,怎麼從伺服器簽出代碼到本機,也簡單了解了不同狀态所對應的圖案啦。

三、送出修改過的檔案到SVN伺服器

上面的圖2-2-7中,我修改了位于Model檔案中的二個檔案ImageInfo.cs和NewsInfo.cs,下面示範如何送出到SVN伺服器。

注意:送出源代碼到伺服器時,一定確定本機的代碼是最新版本,否則可能送出失敗,或者造成版本沖突。

在Model檔案夾上點選右鍵或在Model檔案下的空白處點選右鍵,點選SVN Commit…彈出下面的窗體:

圖2-2-9

SVN的使用方法

點選OK按鈕後,彈出如下圖的窗體:

圖2-2-10

SVN的使用方法

四、添加新檔案到SVN伺服器

我們在Model檔案下添加一個新的類檔案UserInfo.cs,在Model檔案下的空白處點選右鍵,點選SVN Commit…,和上面講的送出修改過的檔案到SVN伺服器一樣,就可以了。

另外也可以在檔案UserInfo.cs上點選右鍵,點選TortoiseSVN=>>Add,彈出如下圖的窗體:

圖2-2-11

SVN的使用方法

選中UserInfo.cs檔案,點選OK按鈕,這樣并沒有将這個檔案送出到SVN伺服器,隻是将這個檔案标記為源代碼庫庫中的檔案,并将其狀态置為修改狀态。之後,我們要再SVN Commit這個檔案一次,才可以将其真正送出到SVN伺服器上的代碼庫中。

上面講是添加檔案,實際上,添加檔案夾的步驟也是一樣的,這裡就不說了。

五、更新本機代碼與SVN伺服器上最新的版本一緻

這個也很簡單,隻要在需要更新的檔案夾上點選右鍵或在該檔案下的空白處點選右鍵,點選SVN Update,就可以了。

注意:更新操作可能會因為版本沖突而失敗,這是可以使用合并【Merge】或其他方法解決;也可能因為鎖定【Get Lock】而失敗,這是需要先解鎖【Release Lock】。

六、重命名檔案或檔案夾,并将修改送出到SVN伺服器

隻要在需要重命名的檔案或檔案夾上點選右鍵,點選TortiseSVN=>>Rename…,在彈出的窗體中輸入新名稱,點選OK按鈕,就可以了。此方法也不是直接重命名,而是将該檔案或檔案夾的名稱标記為重命名後名稱,也需要我們使用SVN Commit送出到SVN伺服器後才真正重命名。

七、删除檔案或檔案夾,并将修改送出到SVN伺服器

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

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

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

 注意:向SVN伺服器送出源代碼的時候,一定不要送出bin、obj等檔案夾,否則會很麻煩。但是web項目的bin目錄除外,但是web項目的bin目錄中的引用其他項目而生成的dll不需要送出。

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

如果大家有什麼問題,盡管跟帖提問,我一定及時回答。

好了,今天就先寫到這裡吧,本來說這部分準備寫一篇Blog,可是現在寫了這麼長,還隻是說了一點很基本的東西而已,呵呵……

繼續閱讀