CVS相信大家都聽說過,不過這個廣為使用的版本控制工具還有不少問題,包括中文支持和二進制文件的處理都有或多或少的問題。
現在好了,CVS的作者又為我們開發了SVN。Gnome和KDE的開發團隊都已經換用SVN了,您為什么不試一下呢?
基本的用法
建立代碼庫 svnadmin create /path/to/repos導入數據 svn import /path/to/project file::///path/to/repos -m "initial import"導出數據 svn checkout file::///path/to/repos提交更新 svn commit filename添加文件 svn add刪除文件 svn delele 復制文件 svn copy移動文件 svn move查詢狀態 svn status檢查不同 svn diff同步工作目錄 svn update合并代碼 svn merge;svn resolve
SVN的相關資源
這里是SVN的項目網站。
<<Version Control with Subversion>>的電子書。
這里是繁體中文的SVN文檔(只有部分被翻譯過來了)。
不能不提的CVS
雖然我已經轉入了SVN的陣營,但是CVS仍然是應用為廣泛的版本控制軟件之一。這里收集了一些關于CVS的資源。
CVSD的安裝與配置
CVS使用簡介
(注:這是oscargreat整理的資料,我拿來用相信他不會介意:)
什么是CVS
CVS(Cocurrent Version Systems,并發版本系統)是一個C/S模式的版本控制系統,用于在軟件開發過程中記錄文件版本,協調開發人員保證文件同步,從而保證項目正確的進行并行開發,并支持版本回滾、bug 跟蹤和補丁生成。使用CVS可以有效地對軟件開發的源代碼和開發文檔進行統一的管理和組織。
CVS的工作模式:
CVS的基本工作模式如下:
CVS服務器(代碼文檔庫) / | (版 本 同 步) / | 開發者1 開發者2 開發者3CVS在服務器端維護代碼文檔庫,不同的開發者在本地機器上建立對應代碼樹,并利用CVS保持本地代碼文檔同代碼文檔庫的一致。當由于多個開發者對文件的同時修改造成本地與庫中的代碼文件沖突時,CVS報告并協助解決沖突代碼的合并問題。普通開發者(非管理員)對CVS的使用流程如下所示:
Check out(獲取) -------------------- Merge(合并) | | ^ v v Conflict(沖突) | Modify(修改)-> Update(更新) ---------------- ^ | | | No Conflict(無沖突) | v Update(更新) <- Commit(提交) | v Export(導出)
check out命令只需在開始建立本地代碼樹時使用一次,其后更新本地代碼則使用update命令。update命令比較服務器和本地代碼庫的區別,并把本地代碼樹中過時的文件自動更新。當完成對代碼的修改之后,在提交代碼之前同樣需要使用update命令,以獲取他人并行修改的的代碼。如果出現沖突(即對同一文件同時進行了修改),CVS將在本地代碼中把兩者都保留并標記出來,要求開發者處理沖突。在沖突不存在或已解決的情況下,使用commit命令將服務器代碼更新為本地代碼。CVS要求為更改提供注釋,并自動為更新的文件處理版本編號。當軟件需要正式發布時,使用export命令導出不包含CVS設置信息的源代碼樹。
CVS的管理員還使用包括init, import, admin等命令對服務器和代碼庫進行配置和設置。
CVS在Linux下客戶端的使用
Linux下的多種IDE/Editor,如Emacs,Eclipse等都對CVS提供了支持,但基于命令行的cvs操作是為基本和靈活的。以下介紹CVS命令行的使用。