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