每個嵌入式軟件開發人員都應該使用版本控制系統。當某些東西已經損壞,并且無法撤消時,回到以前版本的能力是一個救命稻草。即使嵌入式開發人員認識并使用了修訂控制系統,他們也應該使用一些最佳實踐,以確保他們的修訂控制系統得到充分利用。
最佳實踐1–排除調試文件夾
調試文件夾包含編譯器為源項目生成的所有目標文件、二進制文件和可執行文件。雖然團隊可能想要保存這些文件的發布版本,但是將它們保存在修訂控制系統中有幾個缺點:
l 目標和可執行文件往往很大,會很快耗盡修訂控制系統中的大量空間
l 當簽出修訂版時,開發人員應該使用他們自己的工具鏈進行構建,而不要依賴于在不同條件下編譯的文件
l 未更改的文件可能處于不同的狀態,并在執行軟件時導致意外行為
由于這些原因以及其他原因,嵌入式開發人員應該避免將調試文件夾及其內容保存在修訂控制系統中。
最佳實踐2–使用“忽略”功能
大多數版本控制系統,如git或mercurial,都有忽略某些文件和文件類型的功能。使用這個特性的一個好方法是為存儲庫系統應該忽略并且不添加到存儲庫中的對象、可執行文件和其他文件創建一個忽略條目。關于如何忽略文件類型的確切方法將因版本控制系統的不同而不同。最好的方法是查閱用戶手冊。
最佳實踐3–提交詳細的提交日志
當開發人員將代碼提交給一個存儲庫時,要么不添加注釋,要么添加的注釋很少,以至于無法確定代碼庫中實際發生了什么變化。擁有一份關于代碼和變更內容的詳細列表,對于在需要時回滾并找到以前的版本至關重要。無數次,軟件中的某些東西中斷了,嵌入式開發人員需要檢查日志,并確定該特性是何時添加或修改的。如果沒有詳細的日志,這個過程就變成了一場耗時的噩夢。每個日志中都應該包含一些關鍵信息:
l 軟件版本號
l 軟件中添加了什么,添加在哪里
l 軟件中修改了什么,哪些模塊受到了影響
l 包含軟件版本所有當前已知未解決問題的列表
l 任何有益的一般性評論
最佳實踐4–經常同步
修訂控制系統只有在使用它們的開發人員經常同步他們的軟件庫時才有用。幾天或幾周不提交代碼無異于自找麻煩。如果開發人員沒有足夠頻繁地獲取最新的變更,也會出現同樣的問題。他們的軟件會很快與代碼庫的其他部分失去同步。因此,嵌入式開發人員需要確保經常進行同步。如果他們不這樣做,他們可能會發現自己花費了太多的時間試圖將他們的代碼合并到主分支中。
最佳實踐5–標簽/分支正式發布
當有一個代碼庫將被發布到野外時,通過分支或標記為正式發布來分離該代碼。將這些代碼分開將使開發人員更容易返回并找到代碼版本。標記或分支為正式版本的代碼也不應該以任何方式被修改,而應該作為原始副本保存。
結論
遵循這幾個最佳實踐將有助于確保你不僅使用修訂控制系統,還能從該系統中獲得最大收益。如果使用得當,修訂控制系統可以節省時間和精力,這些最佳實踐將有助于確保嵌入式開發人員充分利用自己的系統。