軟件版本控制(SVN/CVS)詳解

SVN/CVS都是版本控制和項目數據管理工具。

現在我們從"爲什麼有這些工具?",“這些工具的發展歷史?”,"主要作用?""哪些人使用?"等方面講解。從根本意義上去理解SVN/CVS。

Software Configuration Management 即軟件配置管理,也就是軟件版本管理控制。簡稱 SCM

爲什麼會有SCM?

在比較大的項目中,一般需要的開發人員比較多,所以凸顯的問題就太多了,比如:

 在許多人共同開發一個項目下,一個程序員如何得到最新版本?
 對於版本的修改情況,代碼哪些更新過了?
 如何查詢或者更新到之前的版本(當前版本出問題的情況下)。

 項目經理準確的得到當前的工作進度。

開發人員都改變相同版本的代碼,做了同樣的工作或者代碼發生衝突。

記錄開發歷史,不方便比較不同和修改。

..........................

SCM就是能夠解決這些問題而誕生。

SCM歷史?

起始於1970年,先用於 UNIX下開發的版本管理控制。

發展歷程:

起始於:

            SCCS (Source Code Control System) 
            RCS (Revision Control System)

演變:
             SCCS→CodemgrTeamWare
             RCSCVS             
             SVN   --------SVN是異軍突起,它滿足CVS的功能,並且解決了CVS一些致命的缺點。所以現在大部分都在使用SVN了。

SCM主要作用?

Version Control(版本控制和產品數據管理)

其他----(從程序員的角度來說很少用哦)

SCM的主要術語?

(瞭解概念)

Repository    ---代碼倉庫
Workspace   ---工作臺      (就是客戶端的上傳下載代碼的目錄)
Delta ()          ---不同版本的差別的保存。(文件和項目都有不同的版本,不同的版本比較不同的變化來做保存)--瞭解概念
Baseline       ---基線(HEAD) 
Branch          ---分支(拷貝出兩個項目,發展不同的功能或者做bug修改)
Label             ---標籤(Tag)

國際性的一些大公司,他們開發自己的版本控制和代碼管理工具,而且更自動化,可以自己更新,實現測試代碼,發現bug等強大的功能,但是一般都是不開源的私人工具。例如:微軟的操作系統團隊版本控制工具。

SCM哪些人在用?

Project manager      -----(項目經理)
Software engineer   -----(開發者)
QA manager             -----(測試經理)
QA engineer             -----(測試人員)
Build and release engineer  ------(構建經理)

SCM目前使用最多的工具?

CVS
SVN
VSS(微軟)
ClearCase
TeamWare

---------------分割線-----------------------

寫本文是想徹底去了解爲什麼會產生版本控制工具,他的歷史,以及明白現在用的SVN是如何發展到現在這一步的。

文章做了概念性的說明,沒有去項目分析每一句。只希望快速的去明白一些概念。(有 概念綜合徵的人 請繞道,或者請看下篇實際操作)

下篇對SVN在windows下的操作和SVN在Eclipse裏面做的操作做一個總結(從程序員角度)

  SVN在windows下的操作:http://blog.csdn.net/todaymz/article/details/8738919

Eclipse使用SVN的基本操作:


轉載請說明出處:http://blog.csdn.net/todaymz/article/details/8738872

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