中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

SVN 簡(jiǎn)介

SVN是subversion的縮寫,是一個(gè)開放源代碼的版本控制系統(tǒng),通過采用分支管理系統(tǒng)的高效管理,簡(jiǎn)而言之就是用于多個(gè)人共同開發(fā)同一個(gè)項(xiàng)目,實(shí)現(xiàn)共享資源,實(shí)現(xiàn)最終集中式的管理。(百度百科


Subversion(SVN) 是一個(gè)開源的版本控制系統(tǒng), 也就是說 Subversion 管理著隨時(shí)間改變的數(shù)據(jù)。 這些數(shù)據(jù)放置在一個(gè)中央資料檔案庫(kù)(repository) 中。 這個(gè)檔案庫(kù)很像一個(gè)普通的文件服務(wù)器, 不過它會(huì)記住每一次文件的變動(dòng)。 這樣你就可以把檔案恢復(fù)到舊的版本, 或是瀏覽文件的變動(dòng)歷史。


SVN 的一些概念

  • repository(源代碼庫(kù)):源代碼統(tǒng)一存放的地方
  • Checkout(提?。?當(dāng)你手上沒有源代碼的時(shí)候,你需要從repository checkout一份
  • Commit(提交):當(dāng)你已經(jīng)修改了代碼,你就需要Commit到repository
  • Update (更新):當(dāng)你已經(jīng)Checkout了一份源代碼, Update一下你就可以和Repository上的源代碼同步,你手上的代碼就會(huì)有最新的變更

日常開發(fā)過程其實(shí)就是這樣的(假設(shè)你已經(jīng)Checkout并且已經(jīng)工作了幾天):Update(獲得最新的代碼) -->作出自己的修改并調(diào)試成功 --> Commit(大家就可以看到你的修改了) 。

如果兩個(gè)程序員同時(shí)修改了同一個(gè)文件呢, SVN 可以合并這兩個(gè)程序員的改動(dòng),實(shí)際上SVN管理源代碼是以行為單位的,就是說兩個(gè)程序員只要不是修改了同一行程序,SVN都會(huì)自動(dòng)合并兩種修改。如果是同一行,SVN 會(huì)提示文件 Conflict, 沖突,需要手動(dòng)確認(rèn)。

SVN 的主要功能

  • (1)目錄版本控制

    CVS 只能跟蹤單個(gè)文件的歷史, 不過 Subversion 實(shí)作了一個(gè) "虛擬" 的版本控管文件系統(tǒng), 能夠依時(shí)間跟蹤整個(gè)目錄的變動(dòng)。 目錄和文件都能進(jìn)行版本控制。

  • (2)真實(shí)的版本歷史

    自從CVS限制了文件的版本記錄,CVS并不支持那些可能發(fā)生在文件上,但會(huì)影響所在目錄內(nèi)容的操作,如同復(fù)制和重命名。除此之外,在CVS里你不能用擁有同樣名字但是沒有繼承老版本歷史或者根本沒有關(guān)系的文件替換一個(gè)已經(jīng)納入系統(tǒng)的文件。在Subversion中,你可以增加(add)、刪除(delete)、復(fù)制(copy)和重命名(rename),無論是文件還是目錄。所有的新加的文件都從一個(gè)新的、干凈的版本開始。

  • (3)自動(dòng)提交

    一個(gè)提交動(dòng)作,不是全部更新到了檔案庫(kù)中,就是不完全更新。這允許開發(fā)人員以邏輯區(qū)間建立并提交變動(dòng),以防止當(dāng)部分提交成功時(shí)出現(xiàn)的問題。

  • (4)納入版本控管的元數(shù)據(jù)

    每一個(gè)文件與目錄都附有一組屬性關(guān)鍵字并和屬性值相關(guān)聯(lián)。你可以創(chuàng)建, 并儲(chǔ)存任何你想要的Key/Value對(duì)。 屬性是隨著時(shí)間來作版本控管的,就像文件內(nèi)容一樣。

  • (5)選擇不同的網(wǎng)絡(luò)層

    Subversion 有抽象的檔案庫(kù)存取概念, 可以讓人很容易地實(shí)作新的網(wǎng)絡(luò)機(jī)制。 Subversion 可以作為一個(gè)擴(kuò)展模塊嵌入到Apache HTTP 服務(wù)器中。這個(gè)為Subversion提供了非常先進(jìn)的穩(wěn)定性和協(xié)同工作能力,除此之外還提供了許多重要功能: 舉例來說, 有身份認(rèn)證, 授權(quán), 在線壓縮, 以及文件庫(kù)瀏覽等等。還有一個(gè)輕量級(jí)的獨(dú)立Subversion服務(wù)器, 使用的是自定義的通信協(xié)議, 可以很容易地通過 ssh 以 tunnel 方式使用。

  • (6)一致的數(shù)據(jù)處理方式

    Subversion 使用二進(jìn)制差異算法來異表示文件的差異, 它對(duì)文字(人類可理解的)與二進(jìn)制文件(人類無法理解的) 兩類的文件都一視同仁。 這兩類的文件都同樣地以壓縮形式儲(chǔ)存在檔案庫(kù)中, 而且文件差異是以兩個(gè)方向在網(wǎng)絡(luò)上傳輸?shù)摹?/p>

  • (7)有效的分支(branch)與標(biāo)簽(tag)

    在分支與標(biāo)簽上的消耗并不必一定要與項(xiàng)目大小成正比。 Subversion 建立分支與標(biāo)簽的方法, 就只是復(fù)制該項(xiàng)目, 使用的方法就類似于硬連接(hard-link)。 所以這些操作只會(huì)花費(fèi)很小, 而且是固定的時(shí)間。

  • (8)Hackability

    Subversion沒有任何的歷史包袱; 它主要是一群共用的 C 程序庫(kù), 具有定義完善的API。這使得 Subversion 便于維護(hù), 并且可被其它應(yīng)用程序與程序語言使用。

優(yōu)于CVS之處

1、原子提交。一次提交不管是單個(gè)還是多個(gè)文件,都是作為一個(gè)整體提交的。在這當(dāng)中發(fā)生的意外例如傳輸中斷,不會(huì)引起數(shù)據(jù)庫(kù)的不完整和數(shù)據(jù)損壞。

2、重命名、復(fù)制、刪除文件等動(dòng)作都保存在版本歷史記錄當(dāng)中。

3、對(duì)于二進(jìn)制文件,使用了節(jié)省空間的保存方法。(簡(jiǎn)單的理解,就是只保存和上一版本不同之處)

4、目錄也有版本歷史。整個(gè)目錄樹可以被移動(dòng)或者復(fù)制,操作很簡(jiǎn)單,而且能夠保留全部版本記錄。

5、分支的開銷非常小。

6、優(yōu)化過的數(shù)據(jù)庫(kù)訪問,使得一些操作不必訪問數(shù)據(jù)庫(kù)就可以做到。這樣減少了很多不必要的和數(shù)據(jù)庫(kù)主機(jī)之間的網(wǎng)絡(luò)流量。