2010年6月14日 星期一

TortoiseSVN 常用指令介紹 Part 3.

上一篇介紹的是每天開工時需做的動作

這一篇要介紹的是工作中常會用到的指令

新增, 刪除, 複製, 移動

  • svn add

  • svn delete

  • svn copy

  • svn move

難免會有做錯的時後,這是類似 VSS 中 Undo CheckOut 的功能

  • svn Revert

當你的工作告一段落時,你要將你所做的修改 Commit 提交至SVN當中

  • svn commit

最後,當在操作 SVN 發生操作中斷

  • svn cleanup

 

 

SVN Add, Delete, Copy, Move

svn add 在第一篇時已經有提到過了,基本上就是將新的檔案加入 SVN 當中。那我們在這裡就不再提了

svn delete 刪除有兩個方式,一個是直接立用 檔案總管的功能將檔案刪除,但在 Commit 時會出現 Missing 的狀態,此時將該檔案勾選後再按下 OK 便可以將檔案除 SVN 中刪除。

image

另一個方式是以menu的方式選擇  TortoiseSVN –> delete 將檔案刪除。

image

刪除後記得要再將變更Commit進SVN當中。如此便可完成變更。

 

至於Copy, Move 呢?? 這也是滿簡單的。請在你要 Copy 或是 Move  的檔案以右鍵的方式拖拉到你想去的位置

image

他會跳出選單來讓你選擇,記得、變更完畢後要 Commit進SVN中。

 

SVN Revert

這個指令主要用意是將你對這個板本的修改做一個回復,但只限制未 Commit 的部份。

比如我們剛剛修改了檔案,卻發現改錯了。那就可以直接用 Revert 的這個指令

TortoiseSVN –> Revert 來將修改回復。但也要小心使用,要不然可能將你剛剛的心血一不小心就給他白費了。

image

image

將要回復的檔案勾選,按下 OK 便可。

 

SVN Commit

Commit 是將修改過後的變更提交至 SVN的功能。包括之前所提到的所有功能都需要用 Commit 來將變更提交至SVN。

image

在 Commit 時也可能會發生兩種狀況。

  1. 修改的期間沒有新的版本變動
  2. 修改期間有新的版本變動 –> 需手動作 Merge 的動作 (Merge 在Part2大約有提到過了)

狀況 1 當然是最佳的情境,基本上按下  commit 後就會顯示出成功的結果了

image

但如果遇到有衝突的時後會出現以下的畫面。此時就必需要先做過 Update 的動作了。

image

 

SVN CleanUp

當 SVN 改變我們的工作拷貝時,有可能會發生 操作中斷、網路斷線、斷電、電腦當機。此時只需要執行 Cleanup 就可以將未完成的功作完成。

image

 

 

最後再回顧一下今天用到的指令

新增, 刪除, 複製, 移動

  • svn add

  • svn delete

  • svn copy

  • svn move

 

  • svn Revert

 

  • svn commit
  • svn cleanup

2010年6月13日 星期日

TortoiseSVN 常用指令介紹 Part 2. SVN Update

每天開發專案的第一事應該就是將前一天其他組員所開發的結果更新至自已的電腦中。

SVN 的指令就是 SVN Update

image

Update 之後可能會出現三個狀況。

  1. 工作十分順利,昨天同組員所變更的項目並無衝突 (Conflict) 發生。Update 之後直接會將新的程式碼下載至你的工作目錄中。
  2. 不好,發生了衝突。但Merge的程式還是可以自動將程式合併。
  3. 哇!! 發生衝突了,而且又合併失敗。此時就需要手動的合併了!!

在十分順利的狀況之下,會出現類似以下的畫面,發現有人修改一個檔案並增加了另一個檔案,TortoiseSVN 會自動的將檔案更新。

image

如果說有發生衝突的話呢?? 當SVN 可以判別時,他會自動的將衝突合併,所以一般而言並不會造成我們的困擾。如下圖,在 SVN Update之後,他會自動的幫我們合併在一起

image

但如果說,無法自動合併的話呢?? 那就得手動來判別了。

當無法自動合併時會出現以下的訊息。此時就需要一些手動的操作來解決衝突問題了。

image

我們會發現有衝突發生時檔案的圖示會有一個驚嘆號出現 image

我們必需選擇 TortoiseSVN –> Edit conflicts

image

image

Merge 的操作這裡先不提。基本上它會把檔案上不同的部份全部列出來來讓我們比較合併。

但這樣子的狀況並不會常常發生,所以也不用太擔心。

合併完成後再選擇 TortoiseSVN –> Resolved 告知 SVN 我們已解決了衝突的問題了。

再將我們所做的變更 Commit 進 SVN 中便算完成。

image

經過 Update 之後我們就算是取得了最新的程式副本了,那就可以開始一天的工作了。


這一篇介紹的指令有

  • SVN Update
  • TortoiseSVN –> Edit conflicts

TortoiseSVN 常用指令介紹 Part 1.

當我們使用 SVN 來當作我們版本控制的工具時,我們必需先得知我們版本庫的所在位置。也就是 URL of repository。

第二步就是要設定我們的 工作目錄 以下就來介紹如何設定

SVN CheckOut

1.先在所要工作的目錄上按右鍵,選擇 SVN CheckOut

image

2.設定 URL of repository 至你的 Repository URL後,按下 OK

image

3.SVN 會將目前 Server 上的資料 download 下來,目前只有三個目錄。

image

目錄的圖示也會變成下面的樣子,綠色的勾勾代表目前這個工作目錄與 SVN Repository 上的相同

image

順便介紹一下 TortoiseSVN 的圖示

Explorer showing icon overlays

基本上,建議在下班前的狀態都是 Normal 的狀態。

4.接下來在工作目錄裡建立一個目錄 這個範例裡是 D:\Temp\TestForSVN\FirstApp

image 目錄的圖示會變成一個問號,代表的是這個目錄還沒加到 SVN 中。

5.假設我們的專案產生了一些檔案,接下來我們要將它們加入SVN中。

在剛剛產生的目錄按右鍵選 TortoiseSVN –> Add

image

因為有些檔案是不需要加入 SVN 中的,所以我們要將它們取消圈選。

image

按下 OK 後會將檔案 加入 SVN 中。可以看到我們這一次加了 8 個檔案。

image

請注意,此時我們所做的更動還沒 Commit 進 SVN 中。所以目前目錄的狀態是 Added 要再 Commit 之後才算完成。

image

在目錄上按右鍵選擇 SVN Commit 將我們剛剛的變更寫入 SVN 中

image

我們在剛剛已經有選擇過要加入SVN中的檔案了,所以在這裡不用再選一次。直接按下 OK 就好了

image

按下 ok 後會顯示出結果。 大工告成。

image

我們也會發現,現在的目錄變成了normal 的狀態(有時目錄的狀態不會馬上更新,請等一下或是做 Refresh便可)

image

所以今天介紹的指令有

  1. SVN Check Out -> 初始化檢出 - 設定工作拷貝
  2. SVN Add -> 將新的項目加入 SVN 中
  3. SVN Commit -> 提交修改