jasmine214--love

          只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          云風blog--版本控制系統再考察

          Posted on 2011-04-13 11:04 幻海藍夢 閱讀(208) 評論(0)  編輯  收藏 所屬分類: 版本管理配置管理

          鑒于遷移版本控制系統的工作量比較大(主要是培訓成本),這幾天我們工作室重新調整了下各自對 svn 倉庫的管理權限,理了下以后的開發管理流程。最終決定繼續把 svn 用下去(至少到項目第一階段完成),希望比以前用的更好。

          但出于個人興趣,我繼續考察了幾個分布式 VCS/SCM ,并裝了其中幾個玩。個人直覺 Darcs 最好。不過從流行度講,或許 Mercurial 更佳。

          雖然近期網上似乎支持 Mercurial 的最多(包括烏龜版也做的最全面),但我還是找到一篇文章支持我的直覺。

          Whose Distributed VCS Is The Most Distributed?

          他寫的算是有理有據了。

          不過這篇 blog 成文于 2006 年 8 月,離現在已有些年頭,在這個訊息萬變的今天,每個活躍的開源軟件都會不斷的發展,大家姑且看之。至于我的個人意見,只是出于直覺,沒什么可參考性。

          作者提出了理想的分布式版本控制系統的八點要求,這也正是我想要的:

          1. 協作的基本模式必須是基于分支。

          2. 做分支必須很廉價。

          3. 可以智能的合并分支。

          4. 每組更改集都不必通過整個更新歷史就能和其他部分合并。

          5. 分支既是倉庫的副本,分支操作保持有全部的歷史。

          6. 合并操作也不損失更新歷史。

          7. 提交、分支、合并操作都可以離線完成。

          8. 針對大多數應用都盡可能的快。

          關于這 8 點的具體解釋,有興趣的朋友可以去讀原文,寫的很清楚。其實對于我,沒必要分這么細。我需要的就是,大家可以基于分支來協作工作,而不是基于單次提交。我 每次向大家工作的集合(主干)做合并操作,應該包含一系列的本地提交。在完成這個功能的基礎上,VCS 應該用起來足夠簡單(簡單的用 pull/push 取代 update/commit),不損失我的工作流程包含的信息(從何時分支,何時合并,中間做了一系列什么修改),且跑起來足夠快。

          作者的結論是明顯偏向 Darcs 的,這個觀點倒是可以商榷。不過 svn 顯然達不到大多數要求。這幾天我在 svn 上做了許多分支合并的試驗,發現 svn 很不人性(相比更人性的分布式設計而言)。為什么會這樣?因為 svn 設計之初本就不是基于分支來解決大家的協作問題的。

          btw, Darcs 對中文支持可能會有問題,但是可以通過設置環境變量繞開。請參考 Darcs 的手冊中 Character escaping and non-ASCII character encodings 一節設置。

          原文:http://blog.codingnow.com/2008/01/version_control_system.html

          主站蜘蛛池模板: 长汀县| 金华市| 基隆市| 博兴县| 揭阳市| 徐水县| 旅游| 绵竹市| 蒲江县| 南华县| 方山县| 北辰区| 涞水县| 石嘴山市| 高密市| 富裕县| 湖北省| 万载县| 郸城县| 宜都市| 农安县| 西乌珠穆沁旗| 会宁县| 哈巴河县| 汾阳市| 三穗县| 临沭县| 馆陶县| 蓝山县| 吉林省| 鄯善县| 沂源县| 昂仁县| 龙海市| 英德市| 都匀市| 岚皋县| 无极县| 新宾| 宕昌县| 台北市|