常見的持續集成開源工具
在公司的服務器安裝某種程序,該程序用于按照特定格式和方式記錄和保存公司多名開發人員不定期提交的源代碼,且后期可以按照某種標記及方式對用戶提交的數據進行還原。
CVS( )
早期的集中式版本控制系統,現已基本淘汰
會出現數據提交后不完整的情況
SVN()–集中式版本控制系統
2000年開始開發,目標就是替代CVS集中式管理,依賴于網絡,一臺服務器集中管理目前依然有部分公司在使用
—分布式版本控制系統
Linus在1991年創建了開源的Linux內核,從此Linux便不斷快速發展,不過 Linux的壯大是離不開全世界的開發者的參與,這么多人在世界各地為Linux編寫代碼,那Linux內核的代碼是如何管理的呢?事實是,在2002年以前,世界各地的志愿者把源代碼文件通過diff的方式發給Linus,然后由Linus本人通過手工方式合并代碼!你也許會想,為什么Linus不把Linux代碼放到版本控制系統里呢?不是有CVS、SVN這些免費的版本控制系統嗎?因為Linus堅定地反對CVS和SVN,這些集中式的版本控制系統不但速度慢,且必須聯網才能使用,但是也有一些商用的版本控制系統,雖然比CVS、SVN好用,但那是付費的,和Linux的開源精神不符。
不過,到了2002年,Linux系統已經發展了十年了,代碼庫之大讓Linus很難繼續通過手工方式管理了,社區的弟兄們也對這種方式表達了強烈不滿,于是Linus選擇了一個商業的版本控制系統,的東家公司出于人道主義精神,授權Linux社區免費使用這個版本控制系統。
但是安定團結的大好局面在2005年就被打破了,原因是Linux社區牛人聚集,不免沾染了一些梁山好漢的江湖習氣,開發Samba的試圖破解的協議(這么干的其實也不只他一個),被公司發現了(監控工作做得不錯?。?,于是公司怒了,要收回Linux社區的免費使用權,這時候其實Linus可以向公司道個歉,保證以后嚴格管教弟兄們,但這是不可能的,而且實際情況是Linus自己花了兩周時間自己用C寫了一個分布式版本控制系統,這就是Git!一個月之內,Linux內核的源碼已經由Git管理了!牛是怎么定義的呢?大家可以體會一下,然后Git迅速成為最流行的分布式版本控制系統。
尤其是2008年,使用Ruby on Rails編寫而成網站上線了,它為開源項目免費提供Git存儲,無數開源項目開始遷移至,包括可持續集成工具,PHP,Ruby等等。同時提供付費賬戶和免費賬戶。這兩種賬戶都可以創建公開的代碼倉庫,只有付費賬戶可以創建私有的代碼倉庫。
解決了這個問題, 可以在上面創建免費的私人repo。由烏克蘭程序員和開發,它使用Ruby語言寫成。后來,一些部分用Go語言重寫可持續集成工具,是完全免費的開源軟件,按照MIT許可證分發。2013年7月,產品被拆分為:(社區版)和(企業版),2014年2月,宣布采用開放核心業務模式。設置在專有許可證下,并且包含CE版本中不存在的功能。是使用MIT許可證的基于網絡的Git倉庫管理工具,且具有wiki和issue跟蹤功能。使用Git作為代碼管理工具,并在此基礎上搭建起來的web服務。
企業版:
版本控制系統分類集中式版本控制系統
任何的提交和回滾都依賴于連接服務器SVN服務器是單點
分布式版本控制系統
Git在每個用戶都有一個完整的服務器,然后在有一個中央服務器,用戶可以先將代碼提交到本 地,沒有網絡也可以先提交到本地,然后在有網絡的時候再提交到中央服務器,這樣就大大方便了開發者,而相比CVS和SVN都是集中式的版本控制系統,工作的時候需要先從中央服務器獲 取最新的代碼,改完之后需要提交,如果是一個比較大的文件則需要足夠快的網絡才能快速提交完成,而使用分布式的版本控制系統,每個用戶都是一個完整的版本庫,即使沒有中央服務器也可以提交代碼或者回滾,最終再把改好的代碼提交至中央服務器進行合并即可。
本文鏈接: