关于软件版本管理的笔记

来源:互联网 发布:零基础编程入门书籍 编辑:程序博客网 时间:2024/04/30 00:12

在看sumsung公司的TMuC代码的时候,关注到其代码管理的时候用到了git这一个管理软件,用来管理代码的开发。以http://hevc.kw.bbc.co.uk/git/w/jctvc-tmuc.git上面的为例子,可以看到用的是典型的git的显示界面

commit是存入操作,就是check in操作,是取出副本修改后在提交上去,系统自动会给升级一个版本号,这个就是一个snapshot(某个时刻的快照),在其他软件里面可能也叫tag(比较重要的snapshot)。

另外的术语有trunk,即程序的主干,branch程序的分支。

其他工具有subversion,CVS(现在衰退了)。一般都是主从式的,即文件都放在服务器上面,下位机通过网络对服务器来存取。

 

文摘:

何謂版本控制?
版本控制是一種用來管理開發中的模組(module)的一種技巧,如:工程藍圖、程式原
始碼、法規文件等。這些模組可能同時被許多人維護。而版本控制透過文檔控制記錄模組中
各個區塊的改動,並為每次的更動加上序號,藉此讓模組在開發的過程中,確保不同人編輯
的同一檔案都能保持在最新的狀態。
為甚麼需要版本控制?
平常若我們寫個像是 Hello World 之類的小程式,程式碼連一千行都不到,維護者也只
有一人,說不定這程式還是那種寫了一次就不會再去更動的小東西,這種情況下要套用版本
控制就有點大材小用的感覺了。那版本控制到底要用在哪?當你的專案很龐大時(例如程式
碼超過上萬行,且排除掉每一行都是 Hello World 的情況),或是有許多人共同維護這個專
案,那這時版本控制就派上用場了。想想看,今天程式被發現有個錯誤,在你費盡千辛萬苦
以後找到了這個錯誤,在做出相應的修正以後過一個月,發現你上次做的修正造成了其他的
問題,可是你早已經忘記你當時是修正哪邊,也忘記你是怎麼修改的,若這時你沒有使用版
本控制,那你就只好帶著眼淚去翻那堆程式碼了。但是套用版本控制以後,以上的痛苦發生
的機率就可以大大下降,你可以透過版本控制來紀錄你對程式的修改位置以及之間的差異,
從每次的變更記錄中找出程式在經過哪次的修改以後從可正常執行變成了不能正常執行(或
是相反),加快找出問題所在並解決問題。如果今天這個專案的維護者人數是在兩人以上,
那這時版本控制就更顯得必要了,透過檢視變更記錄可以得知何人於何時對程式碼做出何種
改變,你就可以不用花時間去修正另一人已經修正的錯誤。
另一種情況是,在開發軟體的過程中會經常需要同時開發兩個版本(一個沒錯誤且沒新
功能的版本與有錯誤也有新功能的版本),這時透過版本控制的技巧,將兩個版本分開進行
維護,在開發新功能的同時不去影響到現在發佈的穩定版本。
最簡易的版本控制實行方式就是保留軟體不同版本的數份複本,並加上適當的編號。雖
然這種方式簡單易用,但卻很沒效率,一來是因為每個複本之間的差異並不大,浪費了許多
儲存空間,二來是這種方法需要高度依賴開發者的自我紀律,因此經常導致錯誤的產生。所
以現在多將專案的部份或全部交給自動化的版本控制系統,也就是這篇文件所要介紹的。
版本控制的另一個用處是,你可以去取出(Check-Out)一些有 Open Source 的專案(例
如: pcmanx 這些專案),透過追蹤每一次的變更記錄來學習人家怎麼寫程式。如果你喜歡
使用新功能、或者是喜歡追版本的數字而你又覺得最新的穩定版本或是測試版本仍無法滿足
你的慾望,那你可以取出檔案庫(Repository)中最新的版本來使用,當然後果請自負。

原创粉丝点击