2015-09-25 40 views
3

由於人爲錯誤,我們不得不從備份中恢復服務器上的svn數據。備份時間爲1天。SVN客戶端轉速高於服務器

當某人提交的服務器版本號更高時,會發生什麼情況?我們應該如何調解這個問題?

+0

爲您的所有用戶做一個更新,並開心 –

+0

@ Y.N:不,那不行。看到我的答案。 – sleske

+0

@sleske - 是的,我錯了。 –

回答

2

剛剛用本地存儲庫進行了測試。我創建了一個包含幾個提交的存儲庫,創建了存儲庫文件夾的備份副本,添加了另一個提交,然後用舊的備份副本替換了存儲庫文件夾。

恢復存儲庫,以它的老態(與舊版本)後,行爲如下:

  • 工作方式複製一個新的版本將不再能夠運行svn updatesvn log。他們會收到一條錯誤消息:「svn:E160006:沒有這樣的版本xxx」。
  • 但是,工作副本能夠發送新的提交。服務器將從它的角度分配提交下一個SVN修訂 - 但是,其他工作副本將不會獲取此提交svn up,因爲它們已經具有該修訂號的(不同)提交。因此,工作副本將會發生分歧。

TL; DR:

不被顛覆支持。所有現有的工作副本必須丟棄(並重新檢出)。

如果工作副本有未提交的更改,應保存這些更改(例如,使用svn diff - 但要注意移動文件等限制)並重新應用於新簽出。

+0

這就是我們身上發生的事情。必須將舊的工作副本(更高版本)合併到新的工作副本並提交。正如你想象的那樣,人們對此並不滿意。 – Silviu