2013-04-08 29 views
3
  1. 幾天前,我「更新」了我的本地源代碼副本(,即,我從SVN存儲庫中獲取了代碼)。
  2. 之後,代碼被其他人更改並提交到存儲庫。
  3. 現在我想對代碼進行一些更改並將其提交到存儲庫。

我該怎麼辦?如何從SVN服務器加載最新版本的代碼,忽略我的本地更改?

想到的第一個答案是:做出你的改變和「svn commit」它們。但是,在這種情況下,它會看起來像我試圖刪除其他用戶添加的更改。此外,最近我可能會無意中對代碼做了一些改變,我並不打算這麼做。

想到的第二個答案是:首先,「svn update」您的本地代碼,然後進行更改,然後「svn commit」它們。然而,在這種情況下,「更新」將嘗試合併來自svn服務器的新代碼與我的代碼,這些代碼可能包含上述意外的不期望的更改。想到的第三個答案是:首先,「svn revert」,進行更改,然後「svn commit」。但它也行不通,因爲通過「svn revert」我刪除了我的意外更改(這很好),但我得到舊版本的代碼,如果我嘗試「svn commit」它到svn服務器,它會看起來像我試圖刪除其他人所做的更改。

那麼解決方案是什麼。總結一下,我想從SVN倉庫獲取最新版本的代碼,我不想將這段代碼和我的本地修改合併(我想覆蓋我的本地修改)

+2

怎麼樣svn恢復,然後svn更新? http://stackoverflow.com/questions/3709197/is-it-possible-to-always-force-overwrite-local-changes-when-updating-from-svn – darxsys 2013-04-08 11:47:27

+0

「svn revert」我會得到舊的版本(我通過「svn update」獲得的最後一個版本)。然後,當我使用「svn update」(在「svn revert」之後)時,svn會嘗試將舊版本(在我的本地文件夾中)與新版本(從svn服務器)合併。我不知道這種「合併」是如何工作的,這些版本的優先級是什麼......我需要給予新版本最高的優先權。 – Roman 2013-04-08 11:52:11

回答

1

有兩件事情可以做:

  1. 簽出新的清潔工作目錄。沒有理由爲什麼你不能。好處是,它不會觸及你的東西。
  2. 更新後恢復更改。這會讓您收到一張清理結帳,但您將失去所有更改。

通常情況下,你要保持你做了更改,並將它們合併到其他人也做了變化。如果你需要一個乾淨的結帳,結帳一個新的工作目錄。這是最簡單的,它會保持你的改變。如果您不想要更改,請還原它們,運行svn status以驗證您在工作副本(或非版本化文件)中沒有更改,然後執行更新。它會比新的清理結賬快一點。

相關問題