SVN初學者學習使用文章(轉自文件)
方法/步驟
簽出原始碼到本機
在本機建立資料夾StartKit,右鍵點選Checkout,彈出如下圖的窗體:
在上圖中URL of Repository:下的文字框中輸入svn server中的程式碼庫的地址,其他預設,點選OK按鈕,就開始簽出原始碼了。
說明:上圖中的Checkout Depth,有4個選項,分別是遷出全部、只簽出下一級子目錄和檔案、只簽出檔案、只簽出空專案,預設的是第一項。上面的例子中,我們也可以使用web的方式訪問程式碼庫,在瀏覽器中輸入http://zt.net.henu.edu.cn/svn/StartKit/
這時候也會彈出對話方塊,要求輸入使用者名稱和密碼,通過驗證後即可瀏覽程式碼庫中的內容。
搞定!原始碼已經成功簽出到剛才新建的StartKit目錄中。
開啟StartKit目錄,可以看到如下圖的資料夾結構:
一旦你對檔案或資料夾做了任何修改,那麼檔案或資料夾的顯示圖片機會發生變化。下圖中我修改了其中的二個檔案:
大家看一下不同狀態所對應的圖片:
我們已經知道怎麼將原始碼簽入到SVN伺服器,怎麼從伺服器簽出程式碼到本機,也簡單瞭解了不同狀態所對應的圖案啦。
簽入(匯入)原始碼到SVN伺服器
假如我們使用Visual Studio在資料夾StartKit中建立了一個專案,我們要把這個專案的原始碼簽入到SVN Server上的程式碼庫中裡,首先右鍵點選StartKit資料夾,這時候的右鍵選單如下圖所示:
點選Import,彈出下面的窗體,其中http://zt.net.henu.edu.cn 是伺服器名,svn是程式碼倉庫的根目錄,StartKit是我們在上個教程中新增的一個程式碼庫。
說明:左下角的CheckBox,在第一次簽入原始碼時沒有用,但是,在以後你提交程式碼的時候是非常有用的。
https://192.168.1.XX/svn/class53devp/
點選OK按鈕,會彈出下面的窗體,要求輸入憑據:
在上面的窗體中輸入使用者名稱和密碼,點選OK按鈕:
如上圖所示,好了,原始碼已經成功簽入SVN伺服器了。這時候團隊成員就可以遷出SVN伺服器上的原始碼到自己的機器了。
注意!不要到桌面上面進行import ,會把桌面上所有項都會匯入進去,而且不知道到那。
提交修改過的檔案到SVN伺服器
上面的圖2-2-7中,我修改了位於Model檔案中的二個檔案ImageInfo.cs和NewsInfo.cs,下面演示如何提交到SVN伺服器。
注意:提交原始碼到伺服器時,一定確保本機的程式碼是最新版本,否則可能提交失敗,或者造成版本衝突。
在Model資料夾上點選右鍵或在Model檔案下的空白處點選右鍵,點選SVN Commit…彈出下面的窗體:
點選OK按鈕後,彈出如下圖的窗體:
新增新檔案到SVN伺服器
我們在Model檔案下新增一個新的類檔案UserInfo.cs,在Model檔案下的空白處點選右鍵,點選SVN Commit…,和上面講的提交修改過的檔案到SVN伺服器一樣,就可以了。另外也可以在檔案UserInfo.cs上點選右鍵,點選TortoiseSVN=>>Add,彈出如下圖的窗體:
選中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伺服器開始,每一個版本的資料和檔案,就算是你已經刪除了的,也都可以隨時遷出。
注意此delect是伺服器上面的配置項,而右鍵刪除的是本地檔案,不會影響到伺服器,只是你現在電腦裡面刪除了;
變更svn伺服器地址:
經常SVN伺服器地址變更了,為了不需要重新checkout,只需要變更伺服器地址即可:
操作時候的注意事項:
A.在修改之前,建議先update 操作再進行mod 的commit操作,省的覆蓋前面在你mod之前的操作;
B、在rmv操作之前,先確定是否本機資料,還是的確要刪除service端資料,刪除提交commit才是正式刪除服務端資料;
以上只是TortoiseSVN最簡單的幾個功能,其實他的功能遠不止這些,其他的功能大家可以在使用的過程中慢慢體會,有些功能我會在下面的教程中使用到,到時候會和大家講清楚用法。
另外說明下SVN服務端和客戶端組網:也可以算是B/S結構,但是B結構只能檢視,不能修改;
1、 客戶端可以checkin、checkout,delect等操作配置,配置項,一般操作都在客戶端完成;
2、 服務端只能規劃配置庫大概的結構,而且不能做開啟,編輯配置配置項操作,而且伺服器端機器上也直接查詢不到對應的配置檔案,這個是出於安全考慮加密了;所以所有操作到客戶端完成.
注意事項
注意:向SVN伺服器提交原始碼的時候,一定不要提交bin、obj等資料夾,否則會很麻煩。但是web專案的bin目錄除外,但是web專案的bin目錄中的引用其他專案而生成的dll不需要提交。 一個好習慣:如果專案中引用了其他的第三方的程式集,比如EnterpriseLibrary、FCKEditor等,這時候不要簡單從他們的安裝位置引用,而是在你的解決方案下,新增一個Library的目錄,把需要的程式集複製到這裡,然後從Library目錄引用,這樣有什麼好處,自己想一想吧!