部門版本管理工具的變遷!

2021-04-18 20:29:16 字數 1360 閱讀 4924

最近給部門搭建了svn+apache的版本管理系統,先前使用vss進行原始碼的管理,比較簡單,新員工上手也很容易,但是在後期的版本管理上由於功能不足就導致了版本的混亂,因此迫切需要更好的工具來彌補現在存在的問題。

搭建cvs的系統

使用cvsnt+wincvs,但是經過一段時間考驗發現cvs並不適合我們部門的開發模式,主要有以下原因:

1、每個人的修改都可能會導致整個版本出問題,因此為了便於調查版本問題強調每個人都在上傳版本後進行tag。鑑於cvs只能對檔案進行管理,因此tag操作實際上是對每個檔案進行tag標記,由於整個版本在2g多,這樣就導致了tag操作緩慢而且很容易由於同步操作,某個檔案被鎖而導致tag操作中斷,這樣tag也沒有真正的起到作用。

2、cvs的checkout乙個新的版本速度太慢。

3、由於先前vss的update將會覆蓋本地修改,而cvs則不會,這樣就需要大家對cvsupdate後的檔案進行確認(尤其衝突),而大家處理衝突意識淡薄,遇到衝突總是手忙腳亂。

4、cvs對文字檔案的處理不盡如人意,在對.def檔案的合併上就是比較差。

使用新工具是為了對工作更有幫助,而不是增添負擔,因此聽了段時間抱怨,開始尋求更好的工具。

svn+apache的搭建

開始就想搭建svn,最終搭建cvs是因為網上形形色色的都是使用cvs來管理,當然嘗試一下也讓我了解了我們部門的原始碼管理上需求,來搭建出是大家使用更加舒服、簡單、實用的工具。

使用svn解決了在cvs上tag太慢的問題,由於commit一次svn就會將版本庫大版本號公升級一次,也直接滿足了我們要求每次上必須tag的需求。

svn具有完美的回滾操作,先前tag被中斷後,先前的檔案已經被標記而中斷後以後的檔案則沒有這個tag,而svn卻必須每次操作都必須完全完成才會真正commit到資料庫,中途error則會完全的被執行回滾。這也是svn採用資料庫來進行存貯的優勢。

svn的checkout版本的速度比起vss要遜色一些,而比起cvs來要好一些。

目前使用svn存在的問題

從svn版本庫checkout下來的版本每個檔案除了work copy外還有自己的乙份base copy,由於版本庫原先為2個g,這樣就導致了checkout下來的資料夾大小為4個多g,編譯完成後就變成了近6個g,太占用硬碟了,使得原本不大的硬碟就更加緊張。

當然這個功能在我前段時候出差的時候發現也是有很大的作用,當我改動某些檔案而且忘記了都改了那些地方時,這樣的功能可能通過diff一下base copy,使得我對整個版本的修改一目了然。

經歷了vss->cvs->svn系統的轉變,對版本管理理解的同時讓我也逐漸的開始考慮專案的管理,受益不淺,下篇寫一下trac與專案管理結合的思考。

版本管理工具

美的程式 簡明 少,邏輯質樸,演算法精煉,乙個程式只做一件事情,只有必要功能 好像是 impossible mission。一致 提示資訊的一致,ui 的一致。容錯 程式很穩健,適應各種惡劣情況,以 c 這種語言只有靠長時間補丁才能達到虛假的穩健。高效 盡可能高效。簡評一下幾種版本管理工具 cvs,...

git版本管理工具

以svn為代表的集中式版本控制系統,只有乙個 庫,開發的時候需要先從 庫獲取到最新的版本,然後開始幹活,幹完活之後提交到 伺服器。而git是一種分布式管理控制,每個使用 庫的機器上面都可以有自己的本地 庫,如果多人協作開發的話,只需要用一台伺服器作為中轉,來同步不同使用者之間的本地庫就行了,這樣在沒...

版本管理工具使用

更多使用方法參照 如果git clone不了,嘗試在網頁上新增readme.md檔案後再clone 獲取更新 git pull 配置git remote add origin git push origin master 修改檔案 建立資料夾後 git add git commit m edit g...