Visual SourceSafe 入門教學
上一篇 / 下一篇 2008-08-18 10:46:47 / 个人分类:咖啡轉載
摘要51Testing软件测试网$Xd i#kZ'oI
51Testing软件测试网#{"OU-\0w4FX本文介紹了版本管理的基本概念,以及 Visual SourceSafe 的基礎功能,目的在於希望提供一個能夠快速上手的入門指南,讓初學者能儘快將它用在專案管理上,同時也具備學習其他進階議題的基礎。
51Testing软件测试网zv5i/l)N#V!_I(G_!{I r$Z6{I0
1. 簡介
51Testing软件测试网K@)oI&n5_+wBu在軟體工程的領域裡,有一塊叫做 SCM(Software Configuration Management),有人管它叫「軟體建構管理」。SCM 的傳統定義是原始碼的版本管理,後來則逐漸演進擴大,還包含了軟體開發的一些標準和程序的制定與應用 [Summerville 2000]。版本管理工具對目前的軟體開發開環境來說相當重要,因為不管是軟硬體環境的改變、需求改變、軟體本身的 bug...等等,都會令軟體不斷地演進,我們必須記錄各個版本,以便隨時比對版本之間的差異,或者回到(rollback to)過去的某個版本;此外,當專案小組成員眾多時,工作交接、多人修改同一個檔案等情況,都有可能造成檔案的版本混亂。例如一支程式本來由張三撰寫,可是因為某些原因(請假、臨時支援其他專案、請別人 debug....)暫時由李四修改,後來又交回給張三。如果用傳統的檔案共享機制,每次有這種情形就要互相通知:我改好囉,請把檔案從檔案伺服器搬回你家,萬一有人忘了,可能就會造成檔案版本錯亂,而東西交到客戶手上才發現 bug 依然存在。
n$R?7Z z9PPTZp@051Testing软件测试网 vjw2a;[d K-a因此,如果你曾碰過下列情形,而且深感困擾,你可能就需要版本管理工具的協助:51Testing软件测试网kVm2U vb;Q|J
- 檔案不見了(用滑鼠拖放檔案時誤動作,不知道拖去哪兒放了);
- 檔案被別人覆蓋;
- 想要比對各版本之間有何差異;
- 想要回到之前修改的版本(客戶反覆無常,設計改來改去....);
- 多人同時修改造成的版本混亂;
- 想要知道誰動過的我的程式碼;
- 跨專案共享元件或模組散落在各處。
M b3I*J2F0目前市場上的版本管理工具已經有很多,環肥燕瘦任君挑選,以下幾個可能是大家比較熟悉的:
~lW5q4gW#J:l8W0- Rational Clear 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 特有的):
!_H9T0p!?#z0- 建構人員可以實施每週的里程碑版本建立,統一編譯所有程式碼,確保交給客戶的版本一定是最新的,不會因為某個開發人員忘了把自家 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。51Testing软件测试网+U:p`6^BUa&UuK8k
1.1 基本概念
a"Lp8UUx3Zxh0想像一下沒有工具協助的情況下,當多人同時修改一份文件時,要如何確保文件的版本一致?51Testing软件测试网)?5tL0Di
7_]*n~v"H0也許你可以指派一位專人負責管理文件的進出,這個人姑且就叫他 Manager 好了,Manager 待在一間小小的辦公室裡,負責文件庫的維護和文件的進出。當小組成員 Eric 要修改文件時,就拿磁片到這個窗口請 Manager 複製一份給他,Manager 在複製的同時會記下來:這份文件正由 Eric 修改;而 Eric 則會把磁片拿到他自己的機器上,把檔案複製到他的工作目錄(working folder),然後進行修改。等到 Eric 修改完畢,再從工作目錄中把檔案複製到磁片上交給 Manager,最後文件就被更新到文件庫中(這動作叫做 check in),至此整個文件的修改與更新的程序就完成了。如果在 Eric 修改期間,Vivid 也拿著磁片向 Manager 要求修改同一份文件,這時 Manager 會告訴 Vivid:這份文件目前已經由 Eric 領出(check out),且還在修改當中,你得等他改完才行喔。51Testing软件测试网gX1p+B rJQW
#vd4DN,] B%a Vi0以目前的作業環境來看,使用磁片來傳遞檔案似乎是原始人的行徑,我們當然可以透過網路來傳遞檔案,但是透過網路傳遞檔案卻無法提供上面的例子所要表達的重點:檔案的鎖定。而鎖定機制就是 VSS(或其他版本管理工具)提供的基本功能之一,它確保了多人修改文件時,版本的一致性。上面這個例子當中的文件庫,就相當於 VSS 的資料庫,而 VSS 的用戶端工具(稱為 VSS Explorer)則扮演了 Manager 的角色。
2v,Fw5?4ow,f0K Q-kz2Y0當然 VSS 提供的功能更多,它也允許多人同時取出(check out)同一個檔案進行修改,並且在將檔案送回(check in)資料庫時,自動進行合併(merge),這屬於比較進階的功能,稍後亦會提到。51Testing软件测试网fwt!zo0U%O7M
51Testing软件测试网)y:Lp l[o現在你應該已經大概知道什麼是 VSS 資料庫、什麼是 check in、check out,以及文件修改的流程了,接下來就把一些常見的 VSS 術語列出來,在閱讀本文時,如果碰到不了解的術語,也可以隨時回頭查看。51Testing软件测试网LEw^4Z0FJ2E
51Testing软件测试网L3H"Z QTj1P以下是使用 VSS 時常見的術語:51Testing软件测试网X&hh ^n3`5cZ1Lu
術語 | 說明 |
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. 安裝與使用範例
;~ L M&G}~uf F0本節分別介紹 server 端與 client 的安裝及使用。
0jq&@ e,l/HWQ02.1 伺服器端
ZU%zr"AY(`3i}X0伺服器端包含了管理工具和用戶端工具的安裝,相關的管理及設定工作有下列幾項:
FX"iN8g8?`.T j:\J0- 安裝 VSS。
- 建立資料庫(使用 Admin 管理工具)。
- 建立 user 帳戶(使用 Admin 管理工具)。
- 設定其他選項。
- 設定網路的共用目錄。
\nb ku(Js4e0以下是各項工作的施行細節,我們會在 D:\VSS_DB 目錄下建立一個新的 VSS 資料庫,如果你不想要建立資料庫,也可以使用預設的資料庫。51Testing软件测试网 b4@ x)n1Glic
2.1.1 安裝 VSS
51Testing软件测试网H `;A\j_)u直接執行安裝程式,安裝過程中會有一個安裝選項畫面,其中有三個選項,分別為 SHARED DATABASE SERVER、CUSTOM、與 STAND-ALONE。請選擇 SHARED DATABASE SERVER。
MV;K*Q&r[ Sn0-?P~Z-Tp(?r0安裝完成後,在〔開始\程式集〕裡面會有一個 Microsoft Visual SourceSafe 資料夾,裡面有四個程式捷徑:51Testing软件测试网w{H1BEc4v^
- Analyse & Fix VSS DB
- Analyse VSS DB
- Microsoft Visual SourceSafe 6.0
- Visual SourceSafe 6.0 Admin
2.1.2 建立資料庫
51Testing软件测试网;uP6z/sat'p開啟 Visual SourceSafe 6.0 Admin,如果是第一次執行,程式會提示你要設定 Admin 帳號的密碼,若此時不設定,以後也可以在〔Users\Change Password〕裡面變更 Admin 帳號的密碼。
3q,Qz:LOu9vw/^051Testing软件测试网Y(r V B/]進入 VSS Admin 之後,先點選〔Tools\Create Database〕建立一個自己的資料庫,建立資料庫時會同時建立一個預設的管理員帳戶 'Admin',此帳戶無法刪除。
bG~I'm:lO0%f/|!Y%P*|3_M1_ \6lT0一個資料庫裡面可以包含多個專案,當然你可以視需要建立多個資料庫,只是一次只能使用一個資料庫。51Testing软件测试网x#@0Z1[[/s
51Testing软件测试网A7\V7p0uauWKA假設你將資料庫建立在 D:\VSS_DB 目錄。
^5zNakx02.1.3 建立使用者帳戶
資料庫建立好之後,必須先開啟資料庫,然後就可以為這個資料庫建立 user 帳號,以便日後為各個 user 賦予適當的檔案存取權限。這些 user 就是開發小組的成員。C&R:@ r ]kU0欲開啟資料庫,請點選〔 Users\Open SourceSafe Database〕或者按 Ctrl+O,然後選擇上一個步驟建立的資料庫,如下圖:
Vw7J2xb U Y0.d+u`5M9pr2v;w%uPH051Testing软件测试网C%?4v0guhdu,Y
A4d/?)iQ2h6[)e'y0如果之前建立的資料庫沒有顯示在清單裡面,請按右邊的 Browse 鈕找到該目錄(此動作只需一次),然後按 Open 鈕,即可開啟資料庫。51Testing软件测试网!l@ C9@#d