使用工具是人與動物的基本區別,善用工具能夠極大的提升效率,下降錯誤率。在PC軟件領域,有不少好用的工具,這些工具都是軟件工程重要的基礎設施。然而,嵌入式開發,在其代碼數量上,不少時候因爲沒有那些層出不窮的框架和庫,因此代碼量相比小不少,另外嵌入式的運行載體決定了不可能運行大規模的程序,目標文件通常都是kB爲單位,即便帶操做系統的嵌入式開發,目標代碼也常是MB級別。服務器
這些因素致使不少嵌入式開發者對代碼工具不過重視,直接手動管理代碼,習慣性的改動一次copy一個版本,幾天下來,要不是文件以日期爲單位,天天一版或者一天有好幾個後綴版本,要不是就一路v1,v2,v3後綴備份… 一段時間備份下來,這些東西只有本身能夠看懂,可是一旦放下幾天,某天又回頭要追溯哪一個問題時,因爲沒有修改記錄等緣由,變得及其困難,本身也看不懂了。雖然公司都有服務器,可是涉及到多人開發狀況下,服務器提交都很是慎重,通常的是作出一個階段性成果或者一個模塊測試以後才往服務器合併。大部分時間都是本地開發,一週往服務器commit一兩次。最終致使本機硬盤快速消耗,代碼依然很難追述到某個節點,尤爲爲一些驗證和嘗試工做而新開的版本,這些嘗試其實頗有價值,可是最終被大量備份文件淹沒了,當硬盤快爆了的時候每每都是把全部備份所有刪掉,項目趕得急,根本無暇顧及那些有意義的研究和備份。框架
其實這些均可以在本機用版本管理軟件很好的解決,本文就說說單機版的版本管理。作PC軟件的能夠繞過,服務器倉庫不受地點限制,機器故障機率基本爲零,比單機強多了,作嵌入式的朋友,或入行不深的學生和愛好者能夠看看本文,畢竟經驗之談。工具
1.1 下載安裝Tortoise SVN測試
單機版本管理,Tortoise SVN就足夠了,若是多人合做項目,固然就直接使用Visual SVN 了,主要就是配置Visual SVN Server,都是傻瓜式的安裝,再也不贅述。(本文只討論Windows平臺)操作系統
1.2 代碼管理基礎操做3d
A. 新建代碼倉庫版本控制
一、新建文件夾,目錄和文件夾名稱最好都用英文;blog
二、打開文件夾,在空白處按下右鍵;資源
三、在彈出的菜單中選擇「Tortoise SVN - Create repository here」;開發
四、彈出對話框,提示建立成功,並自動在文件夾中建立了目錄結構;
五、在資源文件夾內,右鍵「Tortoise SVN – Repo browser」,而後複製代碼倉庫地址URL,其實就是本地的文件夾地址加了file://。
B. 導入項目(把項目加入代碼庫)
一、打開已有的項目文件夾,在空白處按下鼠標右鍵;
二、在彈出的菜單中選擇「TortoiseSVN - Import」;
三、選擇導入路徑file:///F:/repository,填寫備註信息,點擊「OK」開始導入;
四、導入完成後會彈出提示,能夠查看導入的文件,點擊「OK」,完成導入。
C. 創建工做目錄(檢出)
一、新建工做目錄文件夾,在空白處按下鼠標右鍵;
二、在彈出的菜單中選擇「SVN Checkout...」;
三、在彈出的對話框中選擇庫目錄、工做目錄,點擊「OK」開始檢出;
四、彈出詳細信息對話框,導出完成後,點擊「OK」。
能夠看到工做目錄中多出了版本管理庫中的文件,這些文件就是有版本控制的,對這些文件的修改能夠保存到庫,也能夠從庫裏恢復舊版本的文件。
通常的,也能夠在任何地方點擊右鍵,在彈出的菜單中選擇「SVN Checkout...」,而後修改檢出的文件的保存路徑。
D. 更新工做目錄
1.對於單機版本管理來講,這個問題基本能夠忽略,除非你在好幾個地方作了check out而後提交了修改。而後某一天你又到了你經常使用的目錄下工做,而後提交修改,可是這時候你用的版本已經不是最新的了。
2.工做前更新文件是一個好習慣,一般在你對工做目錄進行修改前,爲保證你的文件是最新的,須要進行更新操做;
3. 在工做目錄空白處點擊鼠標右鍵,選擇「SVN Update」;
4. 會彈出對話框開始更新,並顯示更新了哪些內容,庫版本是多少。下面就是我在另一個目錄提交了版本,而後到workSpace目錄下,又提交一次update。
E.提交工做目錄(Commit、check in)
一、本地目錄作了修改,而後須要提交到代碼庫;
二、在工做目錄內的空白處或者目錄上點擊鼠標右鍵,選擇「SVN Commit」;
三、會彈出對話框,能夠輸入備註信息,方便之後查看歷史記錄。
顯示將要提交哪些文件,是什麼類型改動,點擊「OK」開始提交,好比下圖是我在文件夾內加了add2.txt文件,而後提交顯示add類型改動;
四、彈出對話框顯示提交進度,完成後點擊「OK」完成。
若不是新加文件,而是修改了已有文件而後提交,會顯示文件修改。
F.版本回滾
問題來了,最前面的引言說的,如何退回某一個版本。
1.爲了試驗更加清晰。咱們先提交一次,作個記錄。提交時候的log寫爲:測試版本回滾v7.
2.修改文件,提交第二次,log爲test changed 1。
3. 修改文件,提交第三次。
4. 版本回滾到v7.
目前版本9,能夠回到版本7。根據版本回滾.
固然,通常的都是根據提交時候的註釋回滾。找到某一版本,而後右鍵選擇Update item to revision 或者直接Check Out,二者效果是同樣的。
G. 如何新加一個文件
以下,新建了兩個文件。
而後新加文件添加到代碼倉庫,告訴SVN,這兩個小弟也幫忙看管着。
右鍵「TortoiseSVN - add」,彈出對話框選擇要添加的文件。若直接在文件上單擊右鍵添加,那麼這兩個文件會直接添加到版本庫,不會給出提示。
添加成功以後會紅色提示,表示和版本庫不一致,沒有同步。提交以後,紅色感嘆號會變成綠色鉤的標記。
提交以後,這兩個文件就在代碼倉庫有了一個備份,下次check out時候就會有這兩個文件。
一樣道理,要刪除文件也必須commit,讓SVN知道再也不須要管理這個文件,下次check out時候他纔不會出現這個文件。
可是,若是按照版原本找,仍是能夠在當前版本找到被刪除的文件的,這就是版本管理軟件的優點。
若要取消剛纔添加的文件,直接revert 便可,和添加的邏輯恰好相反。