Visual SourceSafe 入学指南
上一篇 / 下一篇 2008-09-08 10:58:10 / 个人分类:研发资料
E3W#Os/ya0X k?'l0摘要
L@|1R/t` YOqh)v#d051Testing软件测试网BHu.h ^本文介紹了版本管理的基本概念,以及VisualSourceSafe的基礎功能,目的在於希望提供一個能夠快速上手的入門指南,讓初學者能儘快將它用在專案管理上,同時也具備學習其他進階議題的基礎。
51Testing软件测试网1G7]]k&rR[|)Z
51Testing软件测试网V,f6FHj d3|%JwXg"F
1. 簡介
51Testing软件测试网 ]'g/?V?\L在軟體工程的領域裡,有一塊叫做 SCM(Software Configuration Management),有人管它叫「軟體建構管理」。SCM 的傳統定義是原始碼的版本管理,後來則逐漸演進擴大,還包含了軟體開發的一些標準和程序的制定與應用 [Summerville 2000]。版本管理工具對目前的軟體開發開環境來說相當重要,因為不管是軟硬體環境的改變、需求改變、軟體本身的 bug...等等,都會令軟體不斷地演進,我們必須記錄各個版本,以便隨時比對版本之間的差異,或者回到(rollback to)過去的某個版本;此外,當專案小組成員眾多時,工作交接、多人修改同一個檔案等情況,都有可能造成檔案的版本混亂。例如一支程式本來由張三撰寫,可是因為某些原因(請假、臨時支援其他專案、請別人 debug....)暫時由李四修改,後來又交回給張三。如果用傳統的檔案共享機制,每次有這種情形就要互相通知:我改好囉,請把檔案從檔案伺服器搬回你家,萬一有人忘了,可能就會造成檔案版本錯亂,而東西交到客戶手上才發現 bug 依然存在。51Testing软件测试网%LG4` z+AE
tP])~1K0因此,如果你曾碰過下列情形,而且深感困擾,你可能就需要版本管理工具的協助:
(C-n9x5y7S0- 檔案不見了(用滑鼠拖放檔案時誤動作,不知道拖去哪兒放了);
- 檔案被別人覆蓋;
- 想要比對各版本之間有何差異;
- 想要回到之前修改的版本(客戶反覆無常,設計改來改去....);
- 多人同時修改造成的版本混亂;
- 想要知道誰動過的我的程式碼;
- 跨專案共享元件或模組散落在各處。
目前市場上的版本管理工具已經有很多,環肥燕瘦任君挑選,以下幾個可能是大家比較熟悉的:
,_j%i H%u&Tf+Wm}h0- RationalClear Case
- Borland StarTeam
- Merant PVCS Version Manager
- Microsoft Visual SourceSafe(VSS)
- Concurrent Versions System(CVS)
CVS 雖然免費,也有視窗介面,但是入門門檻還是偏高,不易入手,以 unix/linux 社群用得較多;StarTeam 和 ClearCase 功能較強大,價格當然也較貴;PVCS 個人也沒使用過,無法提供意見;而 Visual SourceSafe(VSS)功能雖然比較陽春,但是筆者試用之後,覺得如果只需要管理多人開發時的文件和原始碼版本,其實還挺好用的,也很容易上手。VSS 在 Visual Studio .NET 光碟中就有附了,價格算是相當實惠。以下是使用 VSS 管理原始碼的好處(有些不是 VSS 特有的):
*g4ov1i8a7nF.p b0- 建構人員可以實施每週的里程碑版本建立,統一編譯所有程式碼,確保交給客戶的版本一定是最新的,不會因為某個開發人員忘了把自家 local 的檔案複製到server的共享目錄而遺漏掉。
- leader 不用一天到晚打電話或發 mail 去追誰還沒有把新的檔案放上 file server。
- 共用單元的更新更簡便、確實。
- 提供獨立且細微的 user 權限控管,沒有Windows檔案分享時的帳戶權限檢查困擾。
- 同一個檔案多人同時修改可自動 merge 最後的修改成果。
- 可將歷史版本叫出來比對,顯示差異處,以進行合併或修正。
- 提供 Web 應用程式的檔案佈署功能。
- 可以和多種開發工具整合,例如:Visual Basic、Visual Studio .NET、FrontPage 200x。
註:撰寫此文件時,使用的是 VSS 版本是 Visual Studio .NET 1.0 附的 Visual SourceSafe 6.0c。
'rLw;`M01.1 基本概念
51Testing软件测试网1A0M dwD4]bV*t想像一下沒有工具協助的情況下,當多人同時修改一份文件時,要如何確保文件的版本一致?
-n*^P9|N051Testing软件测试网"U7r!DA;}1qC也許你可以指派一位專人負責管理文件的進出,這個人姑且就叫他 Manager 好了,Manager 待在一間小小的辦公室裡,負責文件庫的維護和文件的進出。當小組成員 Eric 要修改文件時,就拿磁片到這個窗口請 Manager 複製一份給他,Manager 在複製的同時會記下來:這份文件正由 Eric 修改;而 Eric 則會把磁片拿到他自己的機器上,把檔案複製到他的工作目錄(working folder),然後進行修改。等到 Eric 修改完畢,再從工作目錄中把檔案複製到磁片上交給 Manager,最後文件就被更新到文件庫中(這動作叫做 check in),至此整個文件的修改與更新的程序就完成了。如果在 Eric 修改期間,Vivid 也拿著磁片向 Manager 要求修改同一份文件,這時 Manager 會告訴 Vivid:這份文件目前已經由 Eric 領出(check out),且還在修改當中,你得等他改完才行喔。
.|x2Oe$p$z K*\4M0Rmwt5u;]r0以目前的作業環境來看,使用磁片來傳遞檔案似乎是原始人的行徑,我們當然可以透過網路來傳遞檔案,但是透過網路傳遞檔案卻無法提供上面的例子所要表達的重點:檔案的鎖定。而鎖定機制就是 VSS(或其他版本管理工具)提供的基本功能之一,它確保了多人修改文件時,版本的一致性。上面這個例子當中的文件庫,就相當於 VSS 的資料庫,而 VSS 的用戶端工具(稱為 VSS Explorer)則扮演了 Manager 的角色。51Testing软件测试网} FQ![{Q;C y.S
qb,Z.?:z9D0當然 VSS 提供的功能更多,它也允許多人同時取出(check out)同一個檔案進行修改,並且在將檔案送回(check in)資料庫時,自動進行合併(merge),這屬於比較進階的功能,稍後亦會提到。
I4Z[ Am F0l3?9{ zoX0現在你應該已經大概知道什麼是 VSS 資料庫、什麼是 check in、check out,以及文件修改的流程了,接下來就把一些常見的 VSS 術語列出來,在閱讀本文時,如果碰到不了解的術語,也可以隨時回頭查看。51Testing软件测试网-_]+D z%D)Vxh0c
/X-e\#fV Kw/T+S.j/t0以下是使用 VSS 時常見的術語:
#gxEZUI+N0術語 | 說明 |
VSS 資料庫 | VSS 會使用一個資料庫來儲存各專案的程式碼版本(包括歷史版本和最新版本的檔案)。 |
Project | VSS 專案,是一個專案檔案的邏輯結構,跟作業系統的目錄類似(注意不是指特殊開發工具的專案,例如:VB 專案)。 |
Working Folder | 用戶端的專案工作目錄。每次從 VSS 資料庫取出檔案時,就會將檔案複製用戶端機器的這個目錄下。 |
Master Copy | 儲存在 VSS 資料庫中的最新版的檔案。 |
Local Copy | 儲存在本機的 Working Folder 的版本。 |
Check Out | 把要修改的檔案從 Master Copy 複製一份到本機的 Working Folder 下,以便修改。 |
Check In | 本機的檔案修改完後,把檔案送回 VSS 資料庫。 |
Get | 只從 VSS 資料庫取得 Master Copy 的檔案,但是不做修改。當你要取得檔案的最新版,並且只對它讀取時,可使用此功能。 |
Multiple Checkouts | 一個檔案同時被多人取出修改。 |
Merge | 合併 Multiple Checkouts 的修改結果。 |
Shadow Folder | 影子目錄,它是一個硬碟上的實體目錄,每當開發人員 check in 檔案時,VSS 就會同時將檔案複製一份到這個影子目錄裡面。 |
2. 安裝與使用範例
,x$~|'mz9zAJvf0本節分別介紹 server 端與 client 的安裝及使用。
8tDL!ZHH-W ek02.1 伺服器端
| zKEx {U0伺服器端包含了管理工具和用戶端工具的安裝,相關的管理及設定工作有下列幾項:
Wd(i5UB|Z7Q0- 安裝 VSS。
- 建立資料庫(使用 Admin 管理工具)。
- 建立 user 帳戶(使用 Admin 管理工具)。
- 設定其他選項。
- 設定網路的共用目錄。
["K:\EVW},l#X0以下是各項工作的施行細節,我們會在 D:\VSS_DB 目錄下建立一個新的 VSS 資料庫,如果你不想要建立資料庫,也可以使用預設的資料庫。51Testing软件测试网%p(?]%] f!s*XU
2.1.1 安裝 VSS
51Testing软件测试网6Duw'EL6kK-ls直接執行安裝程式,安裝過程中會有一個安裝選項畫面,其中有三個選項,分別為 SHARED DATABASE SERVER、CUSTOM、與 STAND-ALONE。請選擇 SHARED DATABASE SERVER。
[,m:Z-D$M2}+g0;|#VL6kfF0安裝完成後,在〔開始\程式集〕裡面會有一個 Microsoft Visual SourceSafe 資料夾,裡面有四個程式捷徑:51Testing软件测试网.ZCh+sb {6j
- Analyse & Fix VSS DB
- Analyse VSS DB
- Microsoft Visual SourceSafe 6.0
- Visual SourceSafe 6.0 Admin
2.1.2 建立資料庫
51Testing软件测试网6Xyd@ Vftx'M開啟 Visual SourceSafe 6.0 Admin,如果是第一次執行,程式會提示你要設定 Admin 帳號的密碼,若此時不設定,以後也可以在〔Users\Change Password〕裡面變更 Admin 帳號的密碼。
M#W8o9q;A3\/G,w6P0