Sealyu 2009-9-3
公司讓總結(jié)一下SVN日常提交工作時需要注意的事項,結(jié)合看到的一片很好的帖子,自己做了部分修改。
帖子地址:http://www.cnblogs.com/chenlong828/archive/2008/09/22/1296193.html 。 感謝作者dreamland讓我節(jié)省了不少時間。
一.提交之前先更新
1.
SVN更新的原則是要隨時更新,隨時提交。當(dāng)完成了一個小功能,能夠通過編譯并且自己測試之后,謹(jǐn)慎地提交。
2.
如果在修改的期間別人也更改了svn的對應(yīng)文件,那么commit就可能會失敗。如果別人和自 己更改的是同一個文件,那么update時會自動進行合并,如果修改的是同一行,那么合并時會產(chǎn)生沖突,這種情況就需要同之前的開發(fā)人員聯(lián)系,兩個人一起協(xié)商解決沖突,解決沖突之后,需要兩人一起測試保證解決沖突之后,程序不會影響其他功能。
3.
在更新時注意所更新文件的列表,如果提交過程中產(chǎn)生了更新,則也是需要重新編譯并且完成自己的一些必要測試,再進行提交。這樣既能了解別人修改了哪些文件,同時也能避免SVN合并錯誤導(dǎo)致代碼有錯
二.保持原子性的提交
每次提交的間歇盡可能地短,以幾個小時的開發(fā)工作為宜。例如在更改UI界面的時候,可以每完成一個UI界面的修改或者設(shè)計,就提交一次。在開發(fā)功能模塊的時候,可以每完成一個小細(xì)節(jié)功能的測試,就提交一次,在修改bug的時候,每修改掉一個bug并且確認(rèn)修改了這個bug,也就提交一次。我們提倡多提交,也就能多為代碼添加上保險。
三.提交時注意不要提交本地自動生成的文件
一般配置管理員都會將項目中一些自動生成的文件或者與本地配置環(huán)境有關(guān)的文件屏蔽提交(例如eclipse中的.classpath文件等)。如果項目中沒有進行這方面的配置來強行禁止提交這樣的文件,請自覺不要提交這樣的文件。提交了這樣的文件后,別人在更新后就可能與本地的環(huán)境沖突從而影響大家的工作。
四.不要提交不能通過編譯的代碼
代碼在提交之前,首先要確認(rèn)自己能夠在本地編譯。如果在代碼中使用了第三方類庫,要考慮到項目組成員中有些成員可能沒有安裝相應(yīng)的第三方類庫。項目經(jīng)理在準(zhǔn)備項目工作區(qū)域的時候,需要考慮到這樣的情況,確保開發(fā)小組成員在簽出代碼之后能夠在統(tǒng)一的環(huán)境中進行編譯。
五.不要提交自己不明白的代碼
代碼在提交入SVN之后,你的代碼將被項目成員所分享。如果提交了你不明白的代碼,你看不懂,別人也看不懂,如果在以后出現(xiàn)了問題將會成為項目質(zhì)量的隱患。因此在引入任何第三方代碼之前,確保你對這個代碼有一個很清晰的了解。
六.提前協(xié)調(diào)好項目組成員的工作計劃
項目經(jīng)理應(yīng)該合理分配工作計劃。每個成員在準(zhǔn)備開始進行某項功能的修改之前,如果有可能,先跟工作小組的成員談?wù)勛约旱男薷挠媱?,讓大家都能了解你的思想,了解你即將對軟件作出的修改,這樣能盡可能的減少在開發(fā)過程中可能出現(xiàn)的沖突,提高開發(fā)效率。同時你也能夠在和成員的交流中發(fā)現(xiàn)自己之前設(shè)計的不足,完善你的設(shè)計。
七.對提交的信息采用明晰的標(biāo)注
在一個項目組中使用SVN,如果提交空的標(biāo)注或者不確切的標(biāo)注將會讓項目組中其他的成員感到很無奈,項目經(jīng)理無法很清晰的掌握工作進度,無法清晰的把握此次提交的概要信息。在發(fā)現(xiàn)錯誤后也無法準(zhǔn)確的定位引起錯誤的文件。所以,在提交工作時,要填寫明晰的標(biāo)注,能夠概要的描述所提交文件的信息,讓項目組其他成員在看到標(biāo)注后不用詳細(xì)看代碼就能了解你所做的修改。
八.慎用鎖定功能
在項目中要慎用鎖定的功能,在你鎖定了一個文件之后別人就無法繼續(xù)修改提交該文件,雖然可以減少沖突的發(fā)生率,但是可能會影響項目組中其他人員的工作。平時只有在編輯那些無法合并的文件(例如圖片文件,flash文件等)時,才適當(dāng)?shù)牟捎面i定操作。