Moving to Subversion (別告訢 auditor 們啊)

太好了,經我一番「鼓吹」,non-ETL 的同事們全線用了 Subversion 作 code sharing 啦!以往跟各位同事提過大學時的某個 mini-project 用 作 Version Control 的時候,他們已驚嘆了一番。但是當時(公司工作時) 程式碼沒那麼多,人手合併起來沒太大問題。 是有的 (Rational Clearcase),不過做 merging 的工作也較麻煩 (Lock-based)。到後來由於功能不斷增多,人手合併往往會產生許多意想不到的問題 (例如手拿三份 source 比對),實在要命。

最近 B 君說想把程式碼移到 CVS(正確來說是再建立多一個 repository),但是有點技術困難尚待解決(例如 RSA(Eclipse)不會認出 web project)。當然我即時跟他重提在飯局後便被遺忘的 SVN,又跟他說,「Apache,KDE 也轉用 Subversion 來作 versioning control 喇!」。之後他居然給我找來了比較各 SCM 的網頁,連說 cool 呢。

跟同事簡介了一下,再在伺服器起了 repository,把手頭上的源碼匯進去,repository 的版本編號變成 1 了!後來給他們安裝 Subclipse,再把 project check-out,整個步驟也容易得很。可是例如 .classpath 大家也不一樣(有些 machine-dependant 的 JAR path,每個人安裝路徑也不相同),不斷設定便太不方便了。後來想了想,便是把這類 classpath 全放進一個 user library 裏,那麼大家便可以自己設定所需的路徑,又不會影響 repository 上的 .classpath,算是解決了問題。

用了 Subversion,再不用連夜作人手比對啦!(可是千萬不要告訴 IT Audit 我們幹的好事!:P)

延伸閱讀:
以往介紹 Subversion 的文章

4 thoughts on “Moving to Subversion (別告訢 auditor 們啊)

  1. 您好,在看了您文章介紹有關Clearcase的介紹,對於有關merge的部份,不太懂Lock-based是什麼意思,能否請教您更清楚的意思呢?另小弟我也想了解ClearCase和SubVersion的主要差異在哪裡,就您實際使用的經驗,不好意思,冒昧請教您,若方便也可留電,小弟直接請教,謝謝

    SCM 是有的 (Rational Clearcase),不過做 merging 的工作也較麻煩 (Lock-based)。到後來由於功能不斷增多,人手合併往往會產生許多意想不到的問題 (例如手拿三份 source 比對),實在要命。

  2. Daniel:

    Subversion 跟 ClearCase 的最大分別是:ClearCase 在 checkin 後的程式碼還要讓另一名開發者作品質控制(QA),用以保持整條 integration branch 的完整性。由於我工作的地方 QA 的同事根本不夠,所以 ClearCase 這個強迫 QA 的「特色」反而阻礙了我們的開發。

    另一個問題是我們團隊的分佈。我們有不少開發者身處廣州,而 ClearCase 伺服器卻在香港。我們使用 ClearCase 的速度還可接受,他們的就慘不忍睹了。反而 Subversion 真的比較快(據說是通訊協定的 overhead 較少)

    所謂 lock-based,我指是在 ClearCase 裏若某檔案被 checkout 了(即某開發者正修改),負責 QA 的就沒法子將這個檔案的改動移到 integration branch 上,換言之大家也看不見其他改動。

    關於技術上的分別,我建議您看這裏:http://better-scm.berlios.de/comparison/comparison.html

Leave a Reply

Your email address will not be published. Required fields are marked *