??? 源代碼版本控制 ?
? ? ? ? ? 這是是實(shí)際開發(fā)中一個(gè)十分重要的工程手段,幾乎是必須的一個(gè)Process(過程) ?
? ? ? ? ? 如果你的項(xiàng)目中未進(jìn)行版本控制,那么通常你的項(xiàng)目規(guī)模都十分小 ?
? ? ? ? ? 對(duì)初學(xué)者學(xué)習(xí)而言,建議在開始進(jìn)行實(shí)踐小項(xiàng)目的階段即進(jìn)行源代碼版本控制,因?yàn)檫@在以后的工作中,是一定會(huì)用到的。 ?
? ?
? 源代碼版本控制的基本原理如下: ?
? ? ? ? ? 在服務(wù)器端建立該項(xiàng)目的數(shù)據(jù)庫,并保存你選定的項(xiàng)目源文件的第一個(gè)版本。客戶端任一用戶要獲得某源文件的修改權(quán)利,需進(jìn)行check ? out操作。之后客戶端一般每完成一個(gè)無編譯錯(cuò)誤的版本想進(jìn)行保存的時(shí)候,進(jìn)行check ? in操作,將當(dāng)前版本保存在服務(wù)器端上并成為最新版本(注意,不是覆蓋以前的喲)。任一客戶端可以方便地得到服務(wù)器上的文件的任意版本。一般還都實(shí)現(xiàn)了一個(gè)重要的功能是版本比較,任一客戶端可以利用版本控制工具對(duì)某文件的不同版本進(jìn)行版本比較,它會(huì)標(biāo)記出不同版本的同名文件的不同點(diǎn),可以較輕易地看出版本內(nèi)容的演化,這一招很常用。以上假設(shè)客戶端有足夠的權(quán)限。 ?
? ?
? 下面介紹一下我接觸過的三種版本控制工具(也是國內(nèi)用得比較多的): ?
? ?
? ? ? ? ? VSS: ? Visual ? Sourcesafe ?
? ? ? ? ? 這是微軟Visual ? Studio自帶的源代碼版本控制工具,它最大的特點(diǎn)就是易安裝(與Visual ? Studio集成在一起,裝VC/VB的時(shí)候就順便搞定,不用別外費(fèi)工夫),使用簡(jiǎn)單(服務(wù)器端設(shè)置相對(duì)容易,一般個(gè)人稍加摸索就可以輕松搞定,客戶端更是只管check ? in/out),基本功能完善,版本比較很直觀(我喜歡)。它的一般特點(diǎn)是某人check ? out了某版本以后,別人將無法對(duì)此版本check ? out,也就是說同一時(shí)間只有一個(gè)可以修改某一個(gè)文件,這樣就避免了不同的人對(duì)同一文件的修改造成彼此沖突。但以前似乎有人對(duì)我提到過VSS也可以進(jìn)行同時(shí)修改再合并,反正我是沒有這樣用過(如果你用過的話,麻煩跟貼)。另,VSS可集成于VS環(huán)境,但根據(jù)我的經(jīng)驗(yàn),直接在VC里對(duì)版本的check操作,常常不生效,所以最好還是到VSS程序里去進(jìn)行check操作。補(bǔ)充:?jiǎn)螜C(jī)上也可以使用VSS,這樣的好處是在對(duì)當(dāng)前某些文件進(jìn)行了誤操作或大規(guī)模地誤修改之后,可以恢復(fù)到最近的無錯(cuò)誤的版本,最大程度地挽回?fù)p失。VSS實(shí)際應(yīng)用較普遍,如果你是走Visual ? Studio路線的話,一定要用一下。 ?
? ?
? ? ? ? ? CVS:???? Concurrent ? Versions ? System???
????????? 這個(gè)也是一個(gè)大名鼎鼎的開源的版本控制工具,主要活躍在UNIX世界。CVS我使用不多,一般而言好像功能比較偏向于命令行方式(UNIX下開發(fā)很多人也都使用著命令行方式)。當(dāng)然,Windows下面也實(shí)現(xiàn)了幾個(gè)版本的CVS,也可以集成于VS,好像還有一個(gè)可以掛接在IE上的,我沒試過。CVS的一大特點(diǎn)就是不同的客戶端可以同時(shí)check同一個(gè)文件,最后由程序自動(dòng)進(jìn)行版本合并。這似乎挺有用的,不過我沒有用過:)著名的開源項(xiàng)目管理網(wǎng)站sf.net也是用的CVS,如果你要和全世界的程序員一起協(xié)作開發(fā),CVS是必須要安裝的。 ?
? ?
? ? ? ? ? Rational ? Clearcase ?
? ? ? ? ? 這個(gè)工具就比較上檔次了,Rational公司(現(xiàn)在是IBM)的出品,價(jià)格十分昂貴。我最初參加工作的時(shí)候用過一小段時(shí)間,簡(jiǎn)單談一下。這個(gè)工具的特點(diǎn)是復(fù)雜,安裝及設(shè)置就十分復(fù)雜,我的印像中客戶端甚至不得不加入到NT域里面去,導(dǎo)致我在本機(jī)的權(quán)限都不夠,安裝新程序都很麻煩,很郁悶(不知道是不是我們公司的相關(guān)人員安裝設(shè)置錯(cuò)了)。對(duì)使用而言,它有一個(gè)功能挺有用的,就是它能夠根據(jù)你每次check的版本號(hào),自動(dòng)生成版本樹(一個(gè)圖表),你可以清晰地看到版本的演化過程。所以嚴(yán)格地說,像CVS/Clearcase這樣的才真正稱得上“版本”控制,VSS還太勉強(qiáng)。Clearcase的功能十分強(qiáng)大,我不詳述了(我還不想出書),較適于大型軟件公司實(shí)施軟件配置管理時(shí)采用。雖然它的名氣十分之響亮,但我不知道國內(nèi)有多少公司在真正使用正版的Clearcase這樣的工具,想來應(yīng)該是十分之少。
posted on 2006-05-14 12:51
太極虎~宏 閱讀(871)
評(píng)論(1) 編輯 收藏 引用