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