2011-11-19 169 views
1

當一位開發人員將文件打開並開始對其進行編輯時,就會出現問題。另一位開發人員也寫入了文件-A並將其轉入中繼。防止SVN中的其他提交者覆蓋文件

第一個開發人員svn-updates和file-A現在已在他的工作目錄中更新,但他已經開始基於最後一次修訂版處理文件-A。如果她保存該文件然後提交,它將覆蓋其他開發人員所做的所有更改。

在這種情況下,可以做些什麼來防止它呢?任何好的工作流程? DVCS會幫助解決這種衝突嗎?

回答

0

只要您在進行更新之前將文件保存在工作目錄中,那麼您將不會遇到所描述的問題。

我想你應該可以回滾本地目錄到以前的版本做一個:-r [REVISION_NUMBER]

然後保存你的文件

SVN更新編輯,然後做一個:

SVN更新

然後應該在更改中合併或提示您在本地目錄中存在衝突。

一旦你解決了衝突(如果有的話),你可以提交回購。

2

執行SVN更新應該優雅地將其他開發人員的更改合併到第一個開發人員的工作副本中,否則應該發出「合併衝突」信號。在提交之前您需要手動解決衝突。

請參閱http://svnbook.red-bean.com/en/1.7/svn.tour.cycle.html#svn.tour.cycle.resolve

+0

是的,我明白這一點。但我指出開發人員打開文件的修訂版本1並開始在IDE中編輯它的情況。然後在保存該文件之前執行SVN,該文件現在是修訂版2。然後,她繼續保存在她的IDE中打開的文件,該文件現在將覆蓋新的更改。 –

+1

@lamp_scaler:這真的取決於開發人員要小心;沒有VCS可以處理未保存的本地更改。即使她這樣做,解決問題也是微不足道的。 –

1

您對每個文件屬性都設置了需要鎖定。這會強制每個開發人員在編輯文件之前鎖定文件。

這通常不是他們想要工作的方式,但是如果您的開發過程需要它,那就去做吧。

+0

回到CVS(RCS?)而不是愚蠢的消除?餿主意 –

0

在這種情況下,可以做些什麼來防止它呢?任何好的工作流程?

只是理性工作流程:

  • 不要不保存您的修改
  • 使用好編輯器,它自動重裝打開的文件,更新的WC 如果它被改變在後臺(丟失更改教導「經常保存,更新前保存」非常快)