2010-07-23 74 views
4

問題源控制系統

一個巨大的代碼庫跨越到幾個 百萬SLOC, 保持(支撐體/活性增強 等)通過的第二一大羣/第三位 程序員(其中大部分人沒有 真的很在乎)。幾十年前,幾個聰明 傢伙已經把在地方 使用CVS下一個包裝而這個系統是正在使用的當前一代的 開發人員(其中90%的人沒有直接使用 CVS,或聽說過的/ 使用另一個 命令行源控制系統)。

影響:CVS的

用法與多個團隊 跨越多個模塊工作時,不可避免地 =>CVS分支合流到 樹幹。這將是一個活動 在最宗教和 儀式上可能的方式實踐。 [=> 蠻力;計劃提前幾周, 涉及十幾個傢伙2/4天。手動處理數百(有時是數千)源。 有趣的是,涉及的人並不是 修復程序的原始擁有者,他們只是通過檢查 差異;真的,不是在開玩笑!] 這導致很多的 庫/模塊/功能和 太多的精力理智不一致 的花費在這些 合併糾正由於迴歸 缺陷。

而現在,這樣的問題:

可以在一些積極的變化帶來什麼樣的替代源代碼控制系統 和 提高 程序員/經理在環境中生活和其他人 ?

既然大家都圍在那裏似乎已經醉KoolAid(同唱「這 - 是 - 如何-事情,是全熟,處處」),甚至沒有給出一個關於尋找一個替代的思想,現在是時候有人這樣做。但考慮到那些使用該系統的人,應牢記以下幾個方面。

  1. 簡單易用& &理解,甚至喬編碼器應該能夠使用它沒有大驚小怪。 (無論如何,這將不會被需要,因爲包裝將隱藏真正的來自人們的底層的東西)
  2. A 巨大代碼庫(包含跨多種語言的源代碼),與多個(約30)活動分支在任何給定的時間。
  3. 輕鬆合併到各個分支機構。(考慮到變化量相當大)
  4. 對系統的商業支持將是甜蜜的(如果有的話)。
  5. 發展發生在UNIX服務器(如果在HP-UX/Solaris上至少運行)
  6. 應該很好地擴展(數以千計的用戶/十萬源)
  7. 好的文檔
  8. 簡單/明晰的基於瀏覽器的界面來比較/查看更改/副本。
  9. 存儲庫中沒有二進制文件,因此無需擔心。
  10. 用於將當前存儲庫內容導入新系統的設置。

所以請建議。有沒有希望& &出路? :) 很喜歡git的很肯定的東西會被直接拒絕(他們認爲「混帳僅供聰明人」)

編輯:我也有水銀和BitKeeper的想法,並將它提到鄉親環比上漲。希望最好! 謝謝! :)

+10

你是否考慮過退出並找到一份不會破壞你理智的工作?我知道這不是很有幫助,但是這是你描述你的情況時唯一想到的。如果你留在那裏,祝你好運。我可以建議你將此提交給http://thedailywtf.com/? – Jean 2010-07-23 16:24:44

+0

:)感謝讓!但是,直到那裏,我至少應該嘗試,對吧? – raghava 2010-07-23 16:56:10

回答

8

你可能聽說過好的,快速和便宜的老話。這裏同樣適用。具有豐富的功能集會產生一定程度的複雜性。我認爲,如果不選擇涉及複雜性的工具,就不能滿足這些要求。祝你好運,但如果是我,我會選擇一個好工具,並投入一些時間來培訓用戶。

+2

完全同意。在某個時候,咬下子彈並在這個過程中投入一點點錢是有利可圖的。看起來代碼很重要,有足夠的開發人員和龐大的代碼庫。 – RQDQ 2010-07-23 16:21:27

+0

謝謝Bill!如果我是決策者,我本人肯定會採取這種方式,因爲儘管訓練似乎是一項耗費精力/耗時的活動,但從長遠來看,這將有助於實現。但是,我必須看到,上層管理人員「投入一段時間來培訓用戶」的想法會有多好(因爲你只看到了一個較低的梯隊員)。 – raghava 2010-07-23 18:50:14

3
敢肯定這樣的東西混帳會被斷然拒絕(他們認爲「混帳僅供聰明人」)

如果是純粹的「感知」的事 - 他們「感知」混帳太複雜,試着建議Mercurial或Bazaar--他們可能對他們不熟悉已經形成了一個不準確的偏見。

3

Mercurial將是我的建議。爲了避免「複雜性」的感覺,請看 this site

這是「Joel Spolsky對Mercurial DVCS的友好介紹」,它爲用戶(以及顛覆恢復部分)提供了一個很好的教程,讓他們一步一步地編輯,提交,合併等。

1

我會拋出轉移到Subversion的建議。這並不是性感的分佈式源代碼控制,所有酷酷的孩子都在使用,但是,這就是我提出這個建議的原因,SVN應該是從CVS輕鬆遷移的。它在某些方面已經建立,使用良好並且在概念上類似於CVS。 (現在,如果你的開發人員遠遠不能這樣做,它可能沒有幫助。)

很多很多人都做過這種遷移。有utilities在那裏將您的代碼從CVS遷移到SVN(但不是沒有一些痛苦)。

它應該能夠滿足您的大部分要求(儘管合併的可能性有多大是有爭議的)。

底線是:您的挑戰不是技術。這是通過。如果你的團隊不想改變,它不會。可悲的是,任何解決方案都將註定失敗。你必須說服他們首先需要改變。最好的辦法是吸引他們的懶惰(我的意思是以積極的方式),並表明如果他們改變,「生活會更好」。

0

任何工具都需要培訓。我想說,如果你確信自己會轉向其他系統,那麼花費一些時間來培訓這些人是完全合理的,這樣從長遠來看,這將非常有幫助。 通過查看你的需求集我會說試試看svn或sos。擁有sos的優勢在於您可以在問題上獲得24 * 7的支持。他們可以處理大量數據。他們也有一個很酷的瀏覽器界面。