2009-06-12 76 views
2

當在Subversion 1.5中使用合併跟蹤功能時,SVN更新父文件夾的mergeinfo屬性以跟蹤被合併的修訂。我們有大量的開發人員(> 500人)在我們的存儲庫上工作,在大量開發人員都試圖在同一時間提交的時間期限內並不罕見。如果其他開發人員在上次更新後已經提交了相同的文件夾,則由於mergeinfo中的更改,您必須在提交之前更新它。那麼如何避免開發人員被迫重複更新其工作副本的情況,因爲每次他們更新時,其他人都會在該文件夾之前提交到該文件夾​​?或者人們忍受這種情況很難得到嗎?使用SVN合併跟蹤防止工作副本過時

回答

1

@CtrlAltDel,我打電話BS建議任何味道的DVCS是這個問題的銀彈。在這種情況下,您可能會成功的做法是將合併負擔從承諾時間轉移到整合時間,這可能是一個更大的頭痛。現在,不是在集中式存儲庫上實時發生衝突,而是讓開發人員在他們自己的分佈式存儲庫中開發越來越多的代碼庫。把它們組合在一起成爲一個單一的連貫(和工作)產品是不平凡的。

我認爲通知開發人員倉庫提交的解決方案具有實際價值。如果您不是Windows(並且無法使用SVN通知程序,正如Mark所建議的那樣),我建議每次提交時都要更新一個RSS源。你可以通過post-commit存儲庫鉤子來做到這一點 - 在線例子比比皆是。

但是,在存儲庫中的任何地方的東西發生變化時收到通知可能很快變成分心。對於更細粒度的RSS,我使用WebSVN(您必須啓用RSS)。基本上,您可以要求提供任何存儲庫路徑(文件或目錄)的RSS訂閱源,並且它是爲您動態生成/更新的。您也可以隨時刷新RSS - 最後一個版本被緩存,直到提交新版本。所有平臺上都有許多RSS閱讀器可以提醒開發人員進行更改。

0

沒有解決其他比這個問題:

  • 切換到GIT :)(或HG)
  • 忍受它作爲你的建議。
+0

有了這麼多開發人員,git/hg並沒有解決問題,它只是在提交時掩蓋了症狀。詳情請參閱我的回答。 – 2009-06-12 16:38:49

3

我們使用位於任務欄中的SVN Notifier(僅限於Windows),並在監視存儲庫更改時發出警報。這是避免噩夢合併的最好方法 - 如果一旦另一個人提交後立即更新,則合併應該是相當容易的。

1

正在分解您的項目。在子系統和組件中對系統進行分區,併爲每個組件提供源控制中的專用文件夾。

數百名在同一文件夾中工作的開發人員看起來像是一個managemenet噩夢,不僅是因爲這些svn問題。

+0

我完全同意。無論您使用哪種SCM工具,開發工作中的大量重疊都是潛在問題的標誌。如果可能的話,重構代碼結構和/或組織可以幫助你。 – 2009-06-12 16:27:24