2011-09-29 68 views
1

SVN Book chapter on "Switching a Working Copy"似乎說都使得執行開關1)讓你的工作拷貝等同於分支切換到(好像一個做了重新檢出)和2)保留編輯你的工作副本(這樣你就可以提交他們到分支切換到。)這聽起來不一致,因爲如果開關使它像一個新的結帳,那麼您的編輯無法保存。任何人都可以解釋嗎?關於「切換工作副本」的SVN書籍不一致?

下面是相關報價:

「切換」到分支後,你的工作副本是沒有比你會從做目錄的重新檢出得到什麼不同。

...

例如,假設你有一個/ calc/trunk的工作拷貝,並做出了一些改變它的。然後你突然意識到你的意圖是改變分支。沒問題!當您將工作副本切換到分支時,本地更改將保留。然後您可以測試並將它們提交給分支。

TIA

回答

3

退房頁面上的盒子被稱爲 「開關和更新」:

你注意到的svn switch和svn update的輸出看起來是一樣的? switch命令實際上是update命令的超集。

當您運行svn update時,您要求存儲庫比較兩棵樹。倉庫會這樣做,然後將差異的描述發送回客戶端。 svn switch和svn update之間的唯一區別是update命令總是比較兩個相同的路徑。

也就是說,如果你的工作副本是/ calc/trunk的一個鏡像,然後SVN更新會自動對比/鈣/樹幹/ calc/trunk的工作副本和HEAD修訂版。如果您將工作副本切換到分支,則svn switch會將/ calc/trunk的工作副本與HEAD修訂版中的其他分支目錄進行比較。

換句話說,更新會隨着時間移動您的工作副本。交換機在您的時間和空間中移動您的工作副本。

基本上,認爲「開關」命令爲SVN講,「這個新的存儲庫URL哎,回來我的工作拷貝,然後更新我的工作拷貝到新網址的最新版本」。

所以,這「開關」,使你的工作副本看起來像新的URL的新檢出的評論是正確的,如果你沒有本地修改你的工作副本。如果您進行了本地修改,則不準確。在這種情況下,您的工作副本將看起來像新的URL的新簽出,並將您的修改合併。

+0

謝謝,有道理。 –