前陣子把公司裡所有的 repository 全部換成 Git 了...
由於 Git 與 Subversion/Mercurial 運作的方法不一樣,換完後也跟著換 Workflow。
原先 Subversion (1.5+) 對 branch 的 Workflow:
- 開
branches
與trunk
兩個目錄,平常測試時都在trunk
裡測試,測完後 merge 到branches
再 deploy 到 production 主機上。 - 缺點是,如果同時要測很多東西,merge 時得自己挑 revision。
用 Subversion 用一陣子,受不了他的速度後,有陣子在評估 Mercurial 與 Git。當時一直搞不定 Git 的 hook,所以就選了 Mercurial,所以有些 repository 用 Mercurial 開發了一陣子...
在 Mercurial 上,local branch 的功能一直沒搞定,所以會轉成 Mercurial 的 repository 都是不需要 local branch 的功能。當時從 Subversion 換 Mercurial 速度快了許多。
最後全部換成 Git 的主要原因是需要 local branch (anonymous branch),branch 的 Workflow 變成:
- 主程式碼都在 master,所有的新功能 (以項目為單位) 開 branch 發展,最後再 merge 回 master。中央的 server 只放 master branch。
速度比 Mercurial 又快了不少,local branch 也成熟,gitweb 畫面還蠻好看也是主因 (也許會試看看 cgit,畫面看起來也不錯),這次換完後大家都還蠻開心的?
Subversion 轉換成 Git 的工具是 git-svn,把 branch 抓下來後去掉 Subversion 的資訊,直接將 master branch 推上 server。
Mercurial 轉 Git 用的是 fast-export,轉的速度相當快。轉完後要更改 branch 名稱,再將 master branch 推上 server。
git好像沒有類似Tortoise SVN的介面, bzr/mercurial倒是有
不知道貴公司整個轉過去為什麼沒人complain dvcs太難學或沒有Tortoise系列的tools, 我想貴公司負責coding的人應該全部都是guru吧~XD
敝公司光svn想轉成dvcs就要評估大量RD的教育訓練成本和風險了, 還有MIS自己也應該不太想學新的maintain方式, 所以SVN應該還會繼續用到SVN不進版或公司倒閉為止了吧
但是git for windows很烂
To stumble
有TortoiseGit喔
而且更新的頗勤的
Mercurial 現在有 bookmarks / tasks (http://x.zpuppet.org/2009/03/09/mercurial-tasks-extension/) 的 extensions,搭配 rebase/transplant/strip 我想應該可以做到和 git local branch 差不多的功能?
@shoting 不過和 TortoiseSVN 比起來, TortoiseGit 和 TortoiseHG 還有很大的進步空間吧... Orz
不知道有沒有轉換 git 的後續發展?想知道其適用性及不適用性 @@"
感謝
公司早就是純 Git 環境...