掌握版本控制系統的十個技巧

    版本控制系統是在開發人員之間共享源代碼的一種極好方法。這些系統能夠讓多人同時修改相同的代碼集而不會發生頻繁來回發送文件的風險。當開發出現問題時,這些系統能夠確保簡單的按一下鈕就可以回到開發前的完美狀態。歷史表明,沒有版本控制系統的開發過程將註定是一個災難!版本控制系統是一種很重要的開發工具,掌握並充分發揮這些系統的作用有許多技巧。

    技巧1——頻繁提交

    目前的嵌入式軟件有着自己的生存方式,並且傾向於喜怒無常。開發人員只做了很少量的修改,整個系統就可能岌岌可危。開發人員無所畏懼,認爲只要恢復他所做的少量修改就OK了!但系統仍然處於崩潰狀態。沒有版本控制系統,開發人員現在只能抓耳撓腮,試圖回想他們5分鐘前做的但一時又想不起來的修改!另一方面,使用版本控制的工程師只需輕輕點擊鼠標就能恢復到以前正常工作的代碼版本,然後小心謹慎地重新開始。但如果開發人員幾天都沒有提交他的代碼會怎麼樣?數天的辛苦工作將付諸東流,這正是使用版本控制的開發人員應該頻繁提交的原因!完成一個功能就提交。部分功能正常工作了也可以提交。這不僅能在系統出錯時節省工程師的時間,而且能在版本控制系統中留下所做修改的完整痕跡。 

    技巧2——填寫提交日誌

    工程師能夠頻繁地提交他們的代碼修改確實很棒;然而,如果在修改日誌中沒有提供足夠的信息,這種提交也被證明是沒有效果的。大多數版本控制工具都允許在提交代碼時做一些註釋。切記要在日誌中填寫有幫助和有用的信息!不要在這裏留下空白或放置加密信息!日後當代碼中出現缺陷並且開發人員追溯版本時,日誌中包含有用的修改信息將顯得非常重要。填寫這些信息只需很短的時間,但可以節省很長時間的挫敗和頭痛感!嘗試創建一個在每次提交代碼前需要填寫的通用日誌格式。

掌握版本控制系統的十個技巧


     技巧3——不要忘了向版本控制系統中添加文件

     版本控制系統經常會作弄開發人員。最大的玩笑是開發人員認爲他已經提交了代碼但實際上他沒有提交!怎麼會發生這種情況呢?大多數系統要求當你創建了一個文件時你要將它加入版本控制系統。如果沒有這樣做,那麼系統會愉快地提交但忽略掉沒有加入的那些文件!因此不要忘了向版本控制系統添加文件!

掌握版本控制系統的十個技巧

    技巧4——定義提交過程

    實際上真的很容易忘記將文件添加到版本控制系統、正確地記錄修改以及與版本控制系統相關的各種任務。最好是爲需要執行的每個不同任務創建一個過程。例如,創建一個提交過程,類似於這樣: 也可以整理歸納出其它一些過程,例如創建分支代碼、合併分支代碼與主幹源代碼以及創建正式發佈的代碼。

    技巧5——鎖定正在處理的模塊

    經常會發生多個開發人員在開發同一個項目並需要修改同一模塊的情況。版本控制系統通常有個功能,允許編程人員鎖定特定模塊進行編輯。這樣可以阻止另外一個編程人員同時修改同一文件,防止在代碼集中發生衝突。

    技巧6——使用代碼比較工具

    經常不可避免地發生代碼中意外出現缺陷的情況。在發現這個缺陷後我們就會問一個問題,“改了什麼地方?”確切瞭解修改內容的唯一方式是比較不同版本的代碼。如果沒有大多數版本控制系統都包含差異工具這個事實的話,這可是個痛苦的過程。這種差異工具允許對不同版本的代碼進行並排比較。這些有差異的地方會被高亮顯示,方便作爲缺陷的潛在源進行詳細檢查。

    技巧7——不要害怕合併代碼分支

    將代碼分支到單獨的版本、進行修改然後合併回主幹版本這個概念經常讓人感到恐懼!如果出錯了會發生什麼情況?如果沒能正確合併、主幹代碼變崩潰了怎麼辦?初級人員經常擔憂合併分支,但不必過分擔心!這是一種很常見的事情,特別是當多個開發人員涉足同一項目時。如果出現了錯誤,也很容易回到前一個版本並重新開始!克服這種恐懼感的最佳方法是多實踐,在技巧10中將有進一步討論。 

    技巧8——集成像Trac這樣的工具

    目前有許多工具可以完美地集成進版本控制系統。這些工具的範圍也很廣,從缺陷跟蹤到項目管理工具不等。Trac是一種深受開發人員喜愛的工具,它不僅允許規劃軟件的不同版本,跟蹤缺陷,還允許遊覽存儲在知識庫中的代碼集!在代碼檢查和規劃會議期間這個功能就顯得非常便利!最吸引人的是這個工具是免費的!可以從http://trac.edgewall.org/網站下載。

掌握版本控制系統的十個技巧


    技巧9——利用連續集成

    現在有一種席捲全球的純概念非常流行,即連續集成。雖然有多種不同版本的想法,但最讓人感興趣的一種是在開發人員提交代碼時發生的。作爲提交過程的一部分,集成服務器將編譯代碼,並運行單元測試!如果發現任何錯誤,它們都會報告給開發人員!這裏的想法是測試與代碼一起開發,只要新版本一創建,就立即檢查是否有缺陷!這是一種獨特的概念,應該充分加以利用!市場上有許多免費的連續集成服務器,包括大家熟知的Hudson。即便只是想要了解這種技術,這些服務器也值得一看。 

    技巧10——創建一個測試庫並試驗

    不管你閱讀了多少技巧和提示,都無法完全取代實際的經驗。最常用的版本控制系統是SVN。客戶和服務端應用程序都可以免費下載。VisualSVN服務器是一個很好用的服務器,你不需要很大的數據庫。一旦它達到某個值,就會要求用戶開始支付費用。在客戶側,Tortoise SVN是一個不錯的客戶端!下載它們並開始試驗吧!不用多久你就將成爲VCS大師!

    原作者:Jacob Beningo Jacob Beningo是一位嵌入式系統設計的演講師和諮詢師。他曾與多家公司合作開發高質量和魯棒性的產品,並幫助他們克服嵌入式設計挑戰。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章