用小例子來解釋svn switch的使用


  svn switch 的作用,不大好講清楚。用語言描述起來是:switch命令只是update命令的一個超集。svn switch和svn update兩個命令唯一區別就是update會一直比較同一路徑。換名話說,update通過時間移動你的工作拷貝,switch通過時間和空間移動工作拷貝。

  本文的例子僅限svn中的兩個txt文件switch,可能過於簡單,但我相信以小見大,此時合用。 

一、最簡單的svn switch

  右鍵 orange.txt 點擊,選擇TotoriseSVN”->“Switch..”,將其 switch 到svn中的 apple.txt。

  原始

  orange.txt switch to apple.txt ->

 

  可見,此時switch是將 apple.txt 的內容更新到了 orange.txt。與 svn update 的作用沒有任何不同。

  記得將orange.txt重新switch回來。

二、本地有修改,switch,提交,再switch回來

  本地修改orange.txt

  orange.txt switch to apple.txt, and merge, update ->

  orange.txt switch back

  update:

  可見,僅僅是修改了switch后的apple.txt,switch回來后,orange.txt沒有變化,只是 apple.txt 變了。

 

總結:

  在沒有本地修改的情況下,svn switch 與 svn update完全等價。用途是:部分交換文件,可逆。例如,一個分支中的某個部分增加了新功能,但不想立即合並到trunk,可以在trunk中,將那一部分switch到該分支中。這個功能用的多一些吧。

  如果有本地修改,則switch后提交,更新的是switch后的那個文件。switch回來后,本地修改丟失。用途是:

svn中有兩個近似的文件(兩個branches中的同一個文件,名字一樣,路徑不同),你在本地修改時,改錯了地方,要提交到正確的目錄,就switch到正確的目錄。這個是犯了錯或思維跳轉才用,估計用的比較少。但也可能是這種情況,你本地修改了 trunk,但提交前覺得不放心,想創建一個新分支來提交這些修改,那就創建新分支,再switch到新分支,commit,最后 switch 回來吧,trunk什么都沒改,改動全在 branches上了。

  不知講清楚沒???


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM