版本控制系統是開發人員之間共享源代碼的好方法,它們提供了多人同時在同一個代碼庫上工作的能力,而沒有不斷來回發送文件的危險。在嵌入式開發過程中犯了一個錯誤,請放心,只需簡單地按一下按鈕,就可以將代碼回滾到一個新的起點。歷史表明,沒有版本控制系統的工作是一場遲早會發生的災難!版本控制系統是一個必不可少的開發工具,有很多技巧可以幫助你掌握和充分利用這些系統。
技巧1——經常提交
一個開發人員做了一些小的改變,整個系統變得不穩定。開發人員沒有擔心,撤銷了他所做的一些更改,瞧!系統仍然是壞的。沒有版本控制系統,開發人員現在驚慌失措,試圖理解他們在5分鐘前所做的不記得的更改!另一方面,使用版本控制的工程師執行右鍵單擊,簡單地返回到代碼的前一個工作版本,現在小心翼翼地向前移動。但是如果開發人員已經幾天沒有提交他的代碼了呢?幾天的努力可能會付諸東流,這就是為什么使用版本控制的開發人員應該經常提交!完成一項功能并提交。讓部分功能正常工作,提交。這不僅可以在出現問題時節省工程師的時間,還會在版本控制系統中留下所做更改的痕跡。
技巧2——填寫提交日志
如果一個工程師經常提交他們的代碼變更,這是非常好的;但是,如果在變更日志中沒有提供足夠的信息,這可能是徒勞的。大多數版本控制工具都允許在提交代碼時添加注釋。在日志中填入有用的信息!不要留空白或在這里放隱晦的信息!將來,代碼中可能會引入一個bug,當嵌入式開發人員回溯版本時,日志中必須包含有用的信息,說明發生了什么變化。這只需要幾分鐘,將節省許多小時的沮喪和頭痛!嘗試并提出一個在每次提交之前需要填寫的通用日志格式。
技巧3——不要忘記將文件添加到VCS中
眾所周知,版本控制系統會捉弄開發人員。最大的問題是當開發人員認為他正在提交代碼,而實際上他并沒有!怎么會這樣?大多數系統要求在創建文件時將其添加到版本控制中。如果沒有做到這一點,那么系統會提交并忽略那些沒有被添加的文件!所以不要忘記添加文件到VCS!
技巧4——定義提交過程
嵌入式開發人員很容易忘記添加文件到版本控制中,正確記錄變更和與版本控制系統相關的各種任務。最好的辦法是為每一項需要完成的不同任務創建一個流程。例如,創建一個提交進程。它看起來會像下面這樣:
更新代碼庫中的版本日志
復制更改
將文件添加到VCS
開始提交過程
將更改日志粘貼到提交注釋中,并添加任何其他相關注釋
完成提交
可以記錄額外的過程,例如創建代碼分支,將代碼分支與主源代碼主干合并,以及創建代碼的正式發布。
技巧5——鎖定正在處理的模塊
有時候,多個嵌入式開發人員在一個項目上工作,可能需要修改同一個模塊。版本控制系統通常有一個特性,允許程序員鎖定一個特定的模塊進行編輯。這可以防止另一個程序員同時修改文件,從而有助于防止代碼庫中的沖突。
技巧6——利用代碼比較工具
不可避免地會有一個bug潛入代碼中而被忽視的時候,有時它會被發現,然后會問這個問題:“發生了什么變化?”。確定的唯一方法是比較代碼的不同版本。如果不是因為大多數版本控制系統都包括一個差異工具,這可能是一個痛苦的過程。該工具允許跨不同版本的代碼并排比較代碼中的文件。這些改變被突出顯示,然后可以作為bug的潛在來源進行檢查。
技巧7——不要害怕合并代碼分支
將代碼分支成一個單獨的版本,進行修改,然后再將它合并回主版本主干的想法可能會令人害怕!如果出了問題會怎么樣?如果沒有正確合并,主分支損壞了怎么辦?初學者經常會害怕合并分支,但不要擔心!這是一種常見現象,尤其是當多個嵌入式開發人員參與項目時。如果犯了一個錯誤,很容易返回到一個版本并重新開始!克服這種恐懼的最好方法是練習,這將在第十條建議中進一步討論。
技巧8——與Trac等工具集成
現在有很多工具可以很好地集成到控制系統中,這些工具包括從缺陷跟蹤到項目管理工具。Trac是最受歡迎的,它不僅允許計劃不同版本的軟件,跟蹤錯誤,甚至允許瀏覽存儲在庫中的代碼庫!這在代碼評審和計劃會議期間非常方便!最好的是這個工具是免費的!
技巧9——利用持續集成
有一個簡潔的概念正在席卷全球,這就是持續整合。這個想法有幾個不同的版本,但是最有趣的一個版本發生在開發人員提交代碼的時候。作為提交的一部分,集成服務器將編譯代碼并運行單元測試!如果發現任何錯誤,它們將被報告給開發人員!這個想法是測試和代碼一起被開發,每當一個新的版本被創建,它會被立即檢查錯誤!這是一個獨特的概念,應該加以重視!有許多免費的持續集成服務器,包括Hudson。
技巧10——創建一個測試庫并進行實驗
不管你讀到多少技巧和訣竅,沒有什么能勝過真實世界的經驗。最常用的版本控制系統是SVN,客戶端和服務器端的應用程序都可以免費下載。如果你不需要非常大的數據庫,VisualSVN server是一個很好的服務器端。一旦達到一定規模,用戶就需要開始付費。在客戶端,Tortoise SVN是一個偉大的客戶!嵌入式開發人員下載每一個并開始實驗!在你知道之前,你將成為VCS的主人!