LinuxDev 板


LINE

※ 引述《macbuntu (邀怪)》之銘言: : ※ 引述《leolarrel (真.粽子無雙)》之銘言: : : A先commit , 然後B也要commit 時就冒出了"過時(out of date)",這很合理.接下來B就必 : : 須合併A的更改,才能commit. 當B執行合併時,並不會產生衝突警告,接著B的檔案就會變成 : : L11 : : L22 : : L33 : : L4 : : 結果同事就說 "假如L3 是對B的工作上是很重要的一行,A不應該修改.結果A去改到了,B沒 : : 有收到警告" : 我們的作法是, 每個 commit 的人有責任要確保 commit 進去的程式沒有太 : 基本的問題, 譬如不能 compile 之類的. 當 B commit 的時候發現有更新, : B 應該在 merge 後做最基本的測試, 試試自己負責的部分有沒有被影響到, : 確定沒有大問題 B 才做 commit 的動作. 平常的 commit 這樣大概就夠了, : 完整的測試就等 integration build 時交給 testing team 做了. : 我們實際的經驗, 這種多人同時改一個程式檔, 互相影響的狀況其實不多, : 如果常常有這種情形發生, 很可能是你們程式架構不好, 或是 team 裡面 : 每個 programmer 的權責沒有很清楚. Merge conflict 只是凸顯了這些問題而已. 我們公司也在跑類似的模式. 下面是我們訂的規則 1) 準備 commit 前要做一次 svn update 把 working copy update 到最新 2) 在 svn update 時發現有 conflict, 他有責任搞清楚並 resolve 之 3) 然後要做一次 clean compile 並 full unit test 4) 要能夠 compile, 而 unit test 也要全通過, 才能 commit 5) commit 要在 project 頂端 commit, 不該選擇性地選 file commit, 修改也要一次過 commit, 不能一個一個地做 這樣的話, 絕大部份同時修改出的問題都能避免, 而 developer 有責任寫好自己的 unit test. 要是某功能對你很重要而你 又沒有 test, 而令人家改動後影響了你的功能但 unit test 不能detect 的話, 那就是你自己不對, 沒有做好 unit test. 當然, 總是會有很小很小的機會是兩人同時 commit 而把 repo 的壯 態搞亂, 但經驗告訴我, 只要謹守上面的規則, 一個 20 人的 team, 一年也不會出現一次這種問題. 同時我們也有一部 Continuous Integration (CI) server, 每十五分鐘取最新的 source code compile & unit test. 有任 何人 break build 的話很快就能 detect 得到, 當然, break build 的犯人要盡快 fix 好. 同時修改的工作模式要能跑得順利, 很大程度是要建基於 1) 遵守上面的規則 2) 乖乖做 Unit test 3) CI. 三點缺一不可 一點經驗的分享, 希望有用 :) alien --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82
1F:推 qrtt1:前輩有交待,update要像自律神經般。不用想就已經做了 09/24 22:32
2F:→ adrianshum:就是有一大堆人,不是有 outdate file 也不 update 09/25 01:55
3F:→ adrianshum:update 完也不重新 compile+unit test 就 commit 09/25 01:55
4F:→ adrianshum:遇著這類人真的給氣死(尤其是我是負責這類開發流程的) 09/25 01:56
5F:推 TroyLee:每十五分鐘編譯一次編譯的完嗎? 09/25 13:08
6F:→ adrianshum:15-20 分鐘左右, 雖然 unit test 不很齊全 09/25 14:43
7F:→ adrianshum:大概四千多個class, 千多個 unit test 09/25 14:47







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP