查閱了一下網(wǎng)絡(luò)和博客園,發(fā)現(xiàn)還沒有一個(gè)明確地指導(dǎo)源碼管理提交準(zhǔn)則的相關(guān)文章,因此斗膽整理了一部分自己平時(shí)開發(fā)管理的心得,加上查閱了部分英文資料寫了一個(gè)不算很完善的SVN提交準(zhǔn)則。
負(fù)責(zé)而謹(jǐn)慎地提交自己的代碼
SVN更新的原則是要隨時(shí)更新,隨時(shí)提交。當(dāng)完成了一個(gè)小功能,能夠通過編譯并且并且自己測(cè)試之后,謹(jǐn)慎地提交。
如果提交過程中產(chǎn)生了沖突,則需要同之前的開發(fā)人員聯(lián)系,兩個(gè)人一起協(xié)商解決沖突,解決沖突之后,需要兩人一起測(cè)試保證解決沖突之后,程序不會(huì)影響其他功能。
如果提交過程中產(chǎn)生了更新,則也是需要重新編譯并且完成自己的一些必要測(cè)試,再進(jìn)行提交。
保持原子性的提交
每次提交的間歇盡可能地短,以一個(gè)小時(shí),兩個(gè)小時(shí)的開發(fā)工作為宜。如在更改UI界面的時(shí)候,可以每完成一個(gè)UI界面的修改或者設(shè)計(jì),就提交一次。在開發(fā)功能模塊的時(shí)候,可以每完成一個(gè)小細(xì)節(jié)功能的測(cè)試,就提交一次,在修改bug的時(shí)候,每修改掉一個(gè)bug并且確認(rèn)修改了這個(gè)bug,也就提交一次。我們提倡多提交,也就能多為代碼添加上保險(xiǎn)。
不要提交自動(dòng)生成的文件
Visual Studio在生成過程中會(huì)產(chǎn)生很多自動(dòng)文件,如.suo等配置文件,Debug,Release,Obj等編譯文件,以及其他的一些自動(dòng)生成,同編譯代碼無關(guān)的文件,這些文件在提交的時(shí)候不應(yīng)該簽入,如果不小心簽入了,需要使用Delete命令從倉庫中刪除。
不要提交不能通過編譯的代碼
代碼在提交之前,首先要確認(rèn)自己能夠在本地編譯。如果在代碼中使用了第三方類庫,要考慮到項(xiàng)目組成員中有些成員可能沒有安裝相應(yīng)的第三方類庫或者沒有放入GAC(針對(duì).Net Framework)中,項(xiàng)目經(jīng)理在準(zhǔn)備項(xiàng)目工作區(qū)域的時(shí)候,需要考慮到這樣的情況,確保開發(fā)小組成員在簽出代碼之后能夠在統(tǒng)一的環(huán)境中進(jìn)行編譯。
不要提交自己不明白的代碼
代碼在提交入SVN之后,你的代碼將被項(xiàng)目成員所分享。如果提交了你不明白的代碼,你看不懂,別人也看不懂,如果在以后出現(xiàn)了問題將會(huì)成為項(xiàng)目質(zhì)量的隱患。因此在引入任何第三方代碼之前,確保你對(duì)這個(gè)代碼有一個(gè)很清晰的了解。
提前宣布自己的工作計(jì)劃
在自己準(zhǔn)備開始進(jìn)行某項(xiàng)功能的修改之前,先給工作小組的成員談?wù)勛约旱男薷挠?jì)劃,讓大家都能了解你的思想,了解你即將對(duì)軟件作出的修改,這樣能盡可能的減少在開發(fā)過程中可能出現(xiàn)的沖突,提高開發(fā)效率。同時(shí)你也能夠在和成員的交流中發(fā)現(xiàn)自己之前設(shè)計(jì)的不足,完善你的設(shè)計(jì)。
對(duì)提交的信息采用明晰的標(biāo)注
+) 表示增加了功能
*) 表示對(duì)某些功能進(jìn)行了更改
-) 表示刪除了文件,或者對(duì)某些功能進(jìn)行了裁剪,刪除,屏蔽。
b) 表示修正了具體的某個(gè)bug