1、Unix項目程序和文檔版本控制的困惑
本人多年來一直從事銀行應(yīng)用軟件的開發(fā)和維護工作, 參與的項目絕大多數(shù)是基于Unix操作系統(tǒng)的, 在每一個項目的開發(fā)過程中,都將產(chǎn)生大量的程序文件和相關(guān)文檔,項目的文檔一般是存放在Windows環(huán)境下的,而程序文件則一般會存放在Unix服務(wù)器中,對于較復雜的項目,也會出現(xiàn)部分程序文件是Windows環(huán)境下開發(fā)的并存放在Windows環(huán)境下的情況,能否對這些程序和文檔進行有效的控制,將直接影響到項目的工程質(zhì)量。
為了控制Unix項目的程序和文檔的版本,我所在的部門采取了一系列的措施,在前兩年,我們指定了專人(版本管理員)對項目程序和文檔的版本變更進行人工登記和管理,但這種做法并未取得我們預期的效果,原因是我們部門的開發(fā)項目較多,只依*一兩個版本管理員進行所有項目的版本管理將帶來巨大的工作量,由于版本管理員都不是全職的(自身都有開發(fā)和維護的任務(wù)),他們只能應(yīng)付式地完成版本管理的工作,造成了項目版本管理質(zhì)量未能明顯改善。
要解決人工管理工作量大的問題,引入版本管理軟件是必要的,但市面上版本管理軟件繁多,而且一般價格昂貴,這些價格昂貴的版本管理軟件的功能過于強大,反而增加了使用的復雜性,如果用戶未經(jīng)過系統(tǒng)的操作培訓,他們就很難上手使用,尋找功能適中、價格便宜和使用方便的版本管理軟件具有現(xiàn)實的意義,在本文中將向讀者們推薦如何使用微軟公司的Visual SourceSafe版本管理軟件來管理Unix項目的程序和文檔版本。
2、微軟Visual SourceSafe簡介
微軟的Visual SourceSafe(以下簡稱VSS)廣泛應(yīng)用于基于Windows環(huán)境的軟件項目的版本控制,它具有以下的特點:
(1) 功能實用
VSS提供了基本的版本控制功能, 包括協(xié)調(diào)多人同時存取同一個文件、跟蹤文件的歷史版本等基本功能。VSS也提供版本數(shù)據(jù)庫的備份和恢復功能,可有效保證了版本數(shù)據(jù)的安全性,這些功能對于一般的項目開發(fā)已經(jīng)足夠了。
(2) 價格便宜
VSS是Microsoft Visual Studio開發(fā)產(chǎn)品家庭(一般從事軟件開發(fā)的團體都會有該軟件)中的一員,如果你現(xiàn)在已有Visual Studio 6 Enterprise Edition,或者Visual Studio .NET Enterprise Developer Edition,或者Visual Studio .NET Enterprise Architect Edition,都可以在上面找到VSS軟件,由于Microsoft Visual Studio的價格較低(如Visual Studio .NET Enterprise Developer Edition,網(wǎng)上報價為US$ 1799),如果進行成本的攤分,VSS的實際成本可以說是微不足道,如果你無上述的Visual Studio軟件,你也可單獨購買VSS軟件,網(wǎng)上的報價為US$ 549。
(3) 使用方便
VSS繼承了微軟所有產(chǎn)品的優(yōu)點,提供了方便的圖形化的集成的操作界面,用戶可直觀地進行文件的存取、歷史版本瀏覽、文件比較等操作,并可直觀地監(jiān)控到各個文件的當前的狀態(tài)和當前被哪些用戶所占用等信息。用戶基本上不需要培訓,就可使用VSS。
3、利用VSS管理Unix項目程序和文檔版本的關(guān)鍵技術(shù)點
由于VSS是微軟公司被設(shè)計用作在WINDOWS操作系統(tǒng)環(huán)境下進行文件版本管理的軟件,它所管理的文件只能是windows系統(tǒng)能控制的文件。如果要讓VSS管理UNIX系統(tǒng)上的文件,必須通過一定的軟件支持,令到UNIX文件和目錄映射到WINDOWS系統(tǒng)上,變成WINDOWS系統(tǒng)可見和可控制的資源,這樣,VSS才可能存取和管理這些文件。
目前支持UNIX文件映射到WINDOWS系統(tǒng)的軟件有多種,本文將向大家推薦一個GNU的軟件,就是著名的SAMBA軟件,該軟件是完全免費的共享軟件,讀者可方便從互聯(lián)網(wǎng)上進行下載,該軟件功能相當強大,除UNIX文件、目錄可輸出到WINDOWS系統(tǒng)中,打印機等資源也可直接輸出到WINDOWS系統(tǒng)中,通過它可實現(xiàn)跨系統(tǒng)的各種資源共享。
4、構(gòu)建VSS管理Unix項目程序和文檔版本的過程描述
以下我們將通過一個利用VSS管理AIX服務(wù)器上某目錄下文件版本的例子,來說明構(gòu)建的過程細節(jié),基于其它UNIX操作系統(tǒng)的項目可參考這個過程,并在某些實現(xiàn)細節(jié)上略加調(diào)整即可。
(1) 構(gòu)建例子示意圖
如圖所示,本次構(gòu)建的例子將實現(xiàn)VSS對AIX服務(wù)器上/tmp/mydir目錄下所有文件的版本管理,為此,我們需要利用SAMBA軟件將AIX服務(wù)器上的/tmp/mydir進行目錄輸出,讓VSS Client所在的機器可見和可控制,VSS Client再將本目錄設(shè)定成項目的工作目錄,即可實現(xiàn)對AIX服務(wù)器/tmp/mydir目錄下文件的版本控制。
(2) 下載Samba共享軟件到微機
你可從www.bullfreeware.com網(wǎng)站上下載samba在AIX操作系統(tǒng)上的最新執(zhí)行碼版本,該文件是一個exe為后綴的文件,文件名與版本號相關(guān),本次試驗中下載的文件名為SAMBA_aix432-2.0.7.0.exe,該文件的大小約為5M。
如果你是其它的操作系統(tǒng),如Solaris、Linux,則你可從Samba的國際網(wǎng)站上下載Samba的所在操作系統(tǒng)執(zhí)行碼的最新版本,該文件通常是一個壓縮的ZIP文件。
(3) 安裝和配置Samba軟件
a. 將程序從微機FTP到UNIX操作系統(tǒng)中。
我們一般從網(wǎng)上下載的資料都存放在微機系統(tǒng)中,這是你可用ftp將該文件傳送到UNIX服務(wù)器中,由于該文件是壓縮文件,在進行FTP文件傳輸時,必須選擇二進制的傳輸方式, 以確保文件的正確性。本次試驗中將文件傳送到了AIX系統(tǒng)的/tmp目錄下。
b. 執(zhí)行程序進行解包。
用root用戶登錄AIX系統(tǒng),執(zhí)行以下命令進行文件解包:
cd /tmp
chmod 755 SAMBA_aix432-2.0.7.0.exe
./SAMBA_aix432-2.0.7.0.exe
該文件解壓后,將形式兩個文件,分別是SAMBA-2.0.7.0.bff和SAMBA-2.0.7.0.bff.asc文件,這兩個文件的大小大約為15M,因此在進行本文件解壓前,你必須確保解壓所在目錄必須有15M以上的空閑空間。
c. 安裝Samba軟件。
用root用戶登錄,進入smit系統(tǒng)管理工具,選“Software Installation and Maintenance” ==> "Install and Update Software" ==> "Install and Update from LATEST Available Software",在"INPUT device / directory for software"處輸入"/tmp/SAMBA-2.0.7.0.bff",按回車即可進入SAMBA軟件的安裝,安裝完畢后,所有與SAMBA相關(guān)的文件都將放在/usr/local目錄下,該目錄下包含bin、lib、man三個子目錄。
d. 配置Samba軟件。
用root用戶登錄,進入/usr/local/lib目錄,先將原有的配置文件備份
cp smb.conf smb.conf.old
用vi編輯smb.conf文件,并進行以下修改:
socket options = TCP_NODELAY 改為 IPTOS_THROUGHPUT
配置輸出的目錄,本次方式假設(shè)輸出的目錄為/tmp/mydir目錄,在smb.conf文件中加入以下內(nèi)容:
[mydir]
comment = my test dir
path = /tmp/mydir
read only = no
public = yes
e. 啟動Samba軟件
用root用戶登錄,進入/usr/local/bin目錄,執(zhí)行如下命令啟動Samba軟件:
./nmbd -p 138 {注:可使用137、138、139端口,缺省為137端口}
./smbd -p 138 {注:smbd的端口號必須與nmbd一致}
用ps -ef | grep nmbd和ps -ef | grep smbd檢查這兩個進程是否已啟動,如果未全部啟動成功,請查看/var/samba目錄下的日志信息。
(4) 安裝VSS服務(wù)端和VSS客戶端
本次構(gòu)建的VSS服務(wù)器的操作系統(tǒng)為Windows 2000 Advance Server,VSS客戶端的操作系統(tǒng)為win98或以上,運行VSS軟件的安裝程序即可完成服務(wù)端或客戶端的安裝。
如果VSS要管理UNIX文件,由于UNIX文本文件與WINDOWS文本文件在處理換行符上存在差別,則必須將所有的UNIX文件都視為二進制文件,才能保證讀寫UNIX文件的正確性,為此我們必須改變VSS服務(wù)端的某些參數(shù),操作步驟如下:
在VSS服務(wù)端安裝完畢后,請進入"Visual SourceSafe 6.0 Admin"程序,并進入"Tools" ==> "Options"==> "File Types"窗口,將"Binary files"改為"*.*",則以后無論什么后綴的文件(包括Windows系統(tǒng)的文件),都將視為二進制文件。
(5) 配置用戶
以下假設(shè)有一個testuser的用戶需利用VSS管理AIX上的文件,需按如下步驟配置testuser用戶。
a. 在VSS服務(wù)端和某個客戶端上新增testuser用戶
Windows操作系統(tǒng)視版本的不同新增用戶的操作也不盡相同,如果是Windows2000或以上,你可用administrator用戶登錄,在"控制面板"中的"計算機管理"中添加testuser用戶,如果是win98,你可在“控制面板”中的“用戶”中添加testuser用戶。服務(wù)端和客戶端testuser用戶的密碼應(yīng)保持一致。
b. 在VSS軟件中添加testuser用戶
在VSS服務(wù)端,進入"Visual SourceSafe 6.0 Admin"程序, 再進入"Users" ==> "Add User"增加testuser用戶。VSS軟件中testuser用戶的密碼應(yīng)與VSS服務(wù)端和客戶端testuser用戶的密碼保持一致。
c. 在AIX服務(wù)器上配置testuser用戶
用root用戶登錄,用smit user命令添加testuser用戶,并用passwd testuser設(shè)置該用戶的用戶密碼, 該用戶在AIX端的密碼可與在Windows端的密碼不一致。
d. 用smbpasswd配置所有需訪問Samba進程的testuser用戶
用root用戶登錄,進入/usr/local/bin目錄,執(zhí)行smbpasswd -a testuser將testuser設(shè)置為可訪問Samba進程,該命令需輸入密碼,此密碼需與該用戶在windows端的密碼一致。
(6) 利用VSS管理AIX服務(wù)器/tmp/mydir上的文件
a. 映射AIX服務(wù)器的輸出目錄到邏輯盤
在VSS的客戶端,用testuser用戶登錄系統(tǒng),此時在網(wǎng)上鄰居上你可看到AIX服務(wù)器(如果不能直接看到,可用查找計算機的方法),AIX服務(wù)器上有[mydir]的目錄輸出,這時你可將[mydir]映射到一個邏輯盤(如K:),這個映射關(guān)系最好設(shè)定成每次系統(tǒng)重啟時都生效。
b. 增加下級項目unixfile以管理AIX服務(wù)器上的文件
在VSS的客戶端,啟動VSS客戶端程序,即可進入VSS的使用界面,假設(shè)當前項目名為testproject,可在該項目上按鼠標右鍵增加一個下級項目unixfile,該下級項目將專門用作管理在AIX服務(wù)器上/tmp/mydir目錄下的所有文件。
c. 將K:盤設(shè)成unixfile項目的工作目錄
在VSS客戶端,進入VSS使用界面,選中unixfile項目,按鼠標右鍵,在彈出的菜單上選擇”Set Working Folder”,輸入K:即可。
d. 利用VSS軟件管理AIX服務(wù)器上的文件的版本
在VSS客戶端,進入VSS使用界面,選中unixfile項目,再選擇工具欄中“add file”圖標按鈕,你就可選擇將AIX服務(wù)器/tmp/mydir目錄下的哪些文件新納入VSS的管理,已納入VSS管理的文件,你可進行Check in、Check out、Get latest version等一系統(tǒng)的操作,這時你所采取的每一項操作,都直接影響到了AIX服務(wù)器/tmp/mydir目錄下的相關(guān)的文件。
5、結(jié)論
上述例子只說明了某個用戶管理AIX服務(wù)器上某目錄下文件的實現(xiàn)過程,當然,你可根據(jù)所做項目的具體情況,參考以上的步驟設(shè)置更多的用戶或輸出更多的需要管理的AIX目錄;你也可將項目過程中所產(chǎn)生的各種文檔和在Windows環(huán)境下開發(fā)的程序一并納入VSS進行管理,這樣,VSS軟件就能夠完整管理整個項目的程序和文檔的版本了。
本人已經(jīng)利用VSS管理了好幾個UNIX項目的程序和文檔版本,從目前所了解的情況來看,這個版本管理方案是實用可行的,使用過的程序人員都感覺操作簡單,容易上手,因此,你現(xiàn)在如果對管理UNIX項目的程序和文檔版本感到比較困惑的話,不妨一試本文中推薦的方法,或許能幫你解決問題
【?發(fā)表評論?0條?】