作者TonyQ (沉默是金。)
看板Soft_Job
標題Re: [請益] 如何做版本控管
時間Tue Apr 12 00:58:19 2011
※ 引述《erik777 (水樹奈奈紅白登場!!!)》之銘言:
: → TonyQ:git 基本上真的比較不常看到 GUI tool ,可以試試看smartGit 04/11 12:46
: → TonyQ:Mercurial 能見度感覺上在台灣比較低,我最近試用覺得還ok。 04/11 12:46
: → TonyQ:如果你要找台灣比較多人用的,svn應該不算小宗吧... 04/11 12:47
: 推 dyco:那就TFS吧~但不是免費的 04/11 14:07
: → erik777:公司不打算用SVN 我們需要離線也能做版本控管的軟體 04/11 14:21
除非你的團隊不會互相更新程式碼 ,不然我想不出來,
所謂離線也能作版本控管的理由是什麼。
想想看有些人寫了code 但是沒push ,之後炸conflict炸到死的現象,
所謂離線也能作版本控管,我覺得沒有那麼重要,
想想看這個情境:
A:欸 我剛 push 了一個 API ,麻煩你用它跟著作。
B:好( pull and apply)
這種情境到處都是啊,在這種情境下你需要離線版本控管嗎?
而且寫 code 我們也都是拼命 pull 東西怕conflict 。
如果連線的地方沒有對外網路,一般而言,
多是都集中在同一個區網做事,SVN開在內網。
既然大部分的使用情境你都很難脫離網路,
以是否能夠離線存取來決定實在是不聰明......
只要你是個需要彼此互相合作的團隊,離線存取通常不是優勢...
頂多是找log/diff 比較快 XD
之所以推薦你svn ,就是因為對新手來講 commit/update 都不太熟了,
還要 push - pull 可能還有潛在的多 branch 真的會把事情弄得很複雜。
我喜歡 git/hg ,我自己專案也有都在用這兩隻,
不過因為我之前已經有用過svn一兩年,而且我也有花幾個月用專案在磨git,
hg 是蠻多觀念跟git 有點像,以我基本的用法在接 hg 的時候接蠻快的。
重要的問題還是你們的公司是能掌握 Version control ,
還是只是被 version control 牽著走?
我幾乎可以想像你們沒有使用 version control ,
沒有作適合version control 的專案內容/分工切分,
像是不同角色編輯共同檔案的機率應降到最低,特別是語系檔之類的。
之後一樣是會踢 conflict 踢到死,拼命掉版本,
整天有人在哀號是不是有人忘了push 、忘了pull。
你們需要的是找個真正有使用經驗的顧問幫你們導入,
不要一昧的瞎作,也不要急著開條件...
即使一開始用的是 svn ,也可以採用git-svn 作你希望的離線處理,
也可以之後匯入 hg ,當你們真的準備好之後。
我覺得你顧慮的事情都不是重點,
conflict / 怎麼合作才是 VC 系統的痛點。
--
一點淺見。
--
我:一半的日子讓你說,我聽你說你的所有
______________________________________
______________________________________一半的日子我想說,對你說過去的所有:我
_______________________________________________________
在討論中妥善扮演兼具聆聽與分享的角色,是我們一生的課題。
_______________________________________________________
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.81.124.28
推 erik777:謝謝板大指教 04/12 01:01
推 erik777:幾個工程師去客戶那debug時就常會遇到沒對外網路的狀況 04/12 01:08
→ erik777:程式改完後彼此之間就會需要在不連主機的情況下訂版過版 04/12 01:09
→ erik777:最近還滿常遇到的 所以主管才會提要離線也能做定版 04/12 01:11
推 zanyking:那不是問題,幾乎所有的VC都提供patch功能。 04/12 01:20
→ TonyQ:「彼此之間就會需要在不連主機的情況下訂版過版」我以為這件 04/12 01:31
→ TonyQ:事是指push到server,而不是local commit耶? 04/12 01:31
→ TonyQ:那如果所謂訂好板 過好板 push之後有conflict 那怎麼辦? 04/12 01:32
→ TonyQ:我覺得你們需要的搞不好是幾隻3.5g網卡,而不是離線存取XD 04/12 01:33
→ TonyQ:如果你堅持 那用git或hg是沒問題的,文章中提的事情有顧到就 04/12 01:34
→ TonyQ:好了。那些是我覺得比較痛的地方。 04/12 01:35
推 lunastorm:除非被在等別人東西做出來不然一天push一次根本很夠了 04/12 08:15
→ lunastorm:除非就是你們一堆人都在改同樣幾個檔案 那就沒辦法 04/12 08:16
→ Baternest:先用svn 等你覺得功能不夠了 再考慮其它的選項... 04/12 09:19
→ TonyQ:這要看各公司對 commit 的態度,有的地方三不五時就在改api 04/12 09:39
→ TonyQ:今天早上A改了核心api , 中午B用了舊API,晚上merge爆炸 04/12 09:39
→ TonyQ:一堆人都在改同樣幾個檔案 其實也是在所謂專案分工的範疇裡 04/12 09:40
→ TonyQ:我對pull的態度一向都是當成吃飯喝水一樣無時無刻做一下。 04/12 09:40
推 ledia:api 不是應該先 deprecate 再慢慢淘汰嗎? 不然用的人一多 04/12 10:39
→ ledia:頻繁改 api 當然會死 04/12 10:40
→ TonyQ:所以我說,問題是專案/組織有沒有對這些事情去進行控制。 04/12 11:35
→ viper9709:推這篇~~ 04/12 23:13
→ qrtt1:板主應該要分享一下 conflict 血淚史 :P 04/13 15:48
→ TonyQ:最血淚的就是編輯語系檔一天conflict 10幾次的往事了 04/13 17:28
→ TonyQ:幾乎是每編必見紅... 04/13 17:28
推 lwecloud:板主這篇可以自己M了吧,不用避嫌阿XD 04/14 14:27
→ dsx:10人以下開發團隊可以使用rational team concert... 04/16 23:40