VSS 2005 使用詳解

節 1.01 前言 2
節 1.02 安裝 2
節 1.03 數據庫管理 3
(a) 介紹 3
(b) Visual SourceSafe 6.0 Admin程序 3
(c) 打開指定的數據庫 4
(d) 創建新數據庫 5
(e) 用戶管理 5
(f) 使用項目權限Project Rights 5
節 1.04 使用vss瀏覽器 7
(a) 藉助VSS開發項目 7
(b) VSS瀏覽器 8
節 1.05 項目操作 9
(a) 添加項目和文件 9
(b) 設置項目工作路徑 9
(c) 取得項目最新版本 10
(d) 簽出項目Check Out 10
(e) 簽入項目Check In 10
(f) 撤銷簽出Undo Check Out 11
(g) 顯示歷史記錄Show History 11
(h) 顯示差異Show Differences 13
(i) 設置版本標籤Label 14
(j) 取得歷史版本 14
節 1.06 文件操作 14
(a) 取得最新版本 14
(b) 簽出 14
(c) 簽入 14
(d) 撤銷簽出 14
(e) 查看和編輯(View,Edit) 15
(f) 顯示文件歷史Show History 15
(g) 文件比較Show Differences 16
(h) 文件屬性 17
節 1.07 與開發工具整合 18
節 1.08 已知的問題 18
(a) UNICODE、UTF-8的問題 18
(b) InterDev開發Web應用的問題 19
(c) 文件比較的問題 19
(d) 簽入無效的問題(與CuteFTP有關的) 19
節 1.09 Tip 19
 
 
本文件是作者本人使用VSS產生的一些心得、經驗之類的記錄,並非嚴肅的操作手冊。就我個人體會而言,嚴謹詳細的操作手冊通常讓人產生畏懼感並由此排斥這個軟件。如果只通過簡單的幾步引導就能獲得常用的結果則會讓人產生很大的滿足感並對這個軟件產生很高的評價(我試圖接近這個目標)。很幸運,微軟的產品總是比較容易入門(並因此招致競爭對手的嫉妒和指責)。微軟公司的大多數項目並非用VSS管理(他們使用更強大的版本控制系統),然而很多管理嚴格的公司(真正的CMM3)卻也在使用VSS進行管理,他們的VSS數據可以累積到好幾個G。這些公司並非僅僅使用VSS管理源代碼,他們用VSS管理所有受控的文件,包括組織級文件、項目文檔、會議記錄、評審報告等等,總之一句話,所有重要的東西和他們的歷史都可以在VSS中獲得。很多程序員在體會了版本控制系統的好處以後開始用版本控制系統管理自己的所有文件,從此不用擔心自己遺忘什麼或者因爲偶然的失誤失去什麼重要的東西,這是一種幸福的感覺。
Visual SourceSafe 是一個源代碼控制系統,可以保存文件的不同版本,可以比較文件的差別,可以控制不同的人對同一文件的修改。就功能而言是同類產品中比較弱的,但滿足了基本的需要並且非常容易使用,因此獲得了非常廣泛的使用。VSS目前的最高版本是6.0D(6.0+SP6=6.0C),微軟公司似乎沒有開發VSS.net的計劃,因此我們不得不繼續忍受Visual Studio 98風格的界面。
所謂VSS服務器指的是存放VSS數據庫的計算機,客戶端是訪問VSS數據庫的計算機,而VSS數據庫是一個共享的目錄,僅此而已(因此並不存在服務器程序)。
微軟產品的安裝一向簡單,只有少數選項需要說明一下。安裝類型包括“SHARED DATABASE SERVER”、“CUSTOM”和“STAND-ALONE”三種,第一種共享數據庫服務器是完全安裝,第二種定製安裝的默認值也是完全安裝,因爲這個軟件本來就很小,所以選前兩種就行了,第三種單機安裝就是單機版。
此軟件的安裝與標準的Windows程序略有不同,安裝過程中檢查已經安裝的舊產品的方式是搜索整個文件系統,因此可能將同一電腦上的其他操作系統上安裝的VSS檢查出來,此時不必理睬安裝程序的警告,將安裝位置改到合適的地方繼續安裝就行了。安裝過程可能還會提示數據庫版本的問題,新的V6數據庫V5軟件不能訪問,一般來說總是應該使用更新版本的數據庫,再說升級VSS客戶端軟件是很容易的。
安裝完成以後得到一個VSS目錄,這個目錄包含了一切:程序文件、配置文件、默認數據庫、用於網絡安裝的客戶端安裝程序。如果這個默認數據庫需要在網絡上共享(一般總是需要的)則將這個VSS目錄共享,並給相關人員設置完全訪問的權限(即使這個用戶只是VSS數據庫的只讀用戶)。注意,目錄的安全屬性與共享權限不同,“Program Files”目錄下子目錄和文件的訪問權限可能是受限制的,所有VSS用戶在VSS目錄的安全屬性也必須是完全訪問的。
這樣修改安全屬性:在VSS目錄上點右鍵,選擇“屬性”,切換到“安全”屬性頁,設置權限,然後點下面的“高級”按鈕,選中高級裏面最下面的“重置所有子對象的權限並允許傳播可繼承權限”選擇框,點“確定”退出高級,再點確定使修改生效。
安全提示:因爲VSS數據庫要在網絡上完全共享,所以網絡要安全,如果有刪除所有文件的病毒就會出大麻煩,一般的感染特定文件類型的病毒危害小一些,無論如何,安全最重要。
(a)      介紹
VSS的數據庫是一個目錄,目錄下包含若干個文件和目錄,“srcsafe.ini”是關鍵文件,此文件用來標識一個VSS數據庫。VSS客戶端打開一個數據庫的方式就是找到這個文件,所以共享數據庫的方式就是簡單地共享包含這個文件的目錄。另外一個文件“users.txt”記錄用戶信息。還有三個目錄:“data”、“temp”和“users”,分別存放數據庫的內容、臨時的信息和用戶的相關數據。安裝VSS軟件的目錄除了上面所說的VSS數據庫的文件外還包含幾個目錄存放VSS程序,根據安裝類型不同可能還包括網絡客戶端安裝程序。
VSS不存在服務程序,一切都通過文件操作進行。最簡單的備份方式、也是最可靠、絕不會出錯的方式就是備份整個目錄。另一個方式是定期取得數據庫裏所有文件的最新版本,只對最新版本進行備份。爲了避免保存大量不必要的版本,可以對每個項目建立一個VSS數據庫,這個數據庫保存所有的變更(包括開發過程中的大量嘗試性的變更),而公司級的受控庫只保存正規的版本。
安裝VSS軟件的時候可能已經安裝了一個數據庫,那麼這個數據庫就是默認的數據庫,數據庫都用位置命名,目錄名字或者網絡位置的名字(名字其實是無關緊要的,數據庫的實際位置纔是關鍵)。
VSS軟件在程序菜單中包含四個程序,其中兩個——分析並修復數據庫、分析數據庫——都是很少用的,另外兩個VSS Admin程序(Visual SourceSafe 6.0 Admin)和VSS 瀏覽器(Microsoft Visual SourceSafe 6.0)是最常用的。另外還有一些其他程序並未出現在程序菜單,需要閱讀幫助文件挖掘,VSS支持命令行方式,有編程接口(不然開發工具是如何與VSS整合的)。
每個數據庫初始擁有兩個用戶:“Admin”和“Guest”,都擁有全部權限並且沒有口令(因爲Admin沒有口令是不安全的,所以初次打開Admin程序會得到一個安全警告)。Admin用戶是超級用戶並且無法被刪除也不能修改權限。Admin口令是最重要的,因爲默認情況下VSS程序會用上一次的用戶名和口令登錄VSS,所以一般用戶忘記口令是很常見的,這時候就需要Admin用戶使用Admin程序重新設定用戶的口令了。
VSS以樹形目錄的方式組織內容,每個目錄稱之爲一個項目(Project,這是一個重要概念),每個子目錄也同樣是一個項目,如果使用了遞歸選項則對一個項目的操作會包含下面的所有子項目,對一個項目的設定會影響子項目,子項目的設定會覆蓋繼承自父項目的設定(但具體每個操作的效果要看具體的操作,並非沒有特例)。簡單地說,項目就是虛擬目錄(並且和外部實際目錄對應)。
(b)      Visual SourceSafe 6.0 Admin程序
打開Admin程序要求輸入口令,但並不總是這樣,VSS會保存上次使用的數據庫和用戶名、口令,這樣下一次使用VSS就不需要輸入口令,進入VSS的Admin或瀏覽器程序以後可以再改變數據庫。Admin程序的界面如下:
基本上這是個相當簡單的界面,功能都通過菜單實現。界面的主要部分用來顯示當前的用戶列表、權限和登錄狀態,不支持右鍵,僅支持雙擊,雙擊可以修改用戶的名字和權限。權限很簡單,默認爲“Read-Write”,可以修改爲“Read-Only”,顯然這不會使我們滿足,我們需要的是“Project Rights”,對每個目錄給每個用戶特定的權限,這些權限包括只讀、寫入、添加刪除重命名、銷燬,除了不能控制到文件,這基本上滿足了我們的要求。具體操作後面會介紹,相當簡單。  
迴應(3) 
 回覆 引用 
 話題標籤: vss    教程    
 最近的迴應 · · · · · ·
開水白菜 2007-6-5 11:36:15
(c)      打開指定的數據庫
當前打開的數據庫也許並不是需要的,菜單“Users”下的第一個菜單“Open SourceSafe Database”用來打開一個不同的數據庫,打開新數據庫會關閉原來的數據庫。
 
圖中的“Open”按鈕不可用是因爲temp數據庫正是現在打開的,選擇一個不同的數據庫,可以用“Open”按鈕打開它。“Browse”按鈕用來在系統中尋找一個數據庫,尋找的目標就是srcsafe.ini文件,尋找的位置範圍就是一般Windows查找文件的範圍,從桌面開始,包括了“我的電腦”和“網上鄰居”。“Remove”用來從列表中刪除一個數據庫信息,並非刪除數據庫。下面的“Username”不可編輯是因爲Admin程序只允許Admin用戶使用,如果是在VSS瀏覽器下執行這個功能則可以編輯。
(d)      創建新數據庫
很多時候我們並不喜歡默認的數據庫,可能是因爲它的安裝位置太深了。我們也可能爲了不同的目的創建幾個不同的數據庫。創建數據庫使用菜單“Tools”下的“Create Database”,僅僅需要選擇一個存放數據庫的目錄即可(不會在這個目錄下創建“VSS”目錄,所有文件和目錄直接放在選擇的目錄下,因此這個目錄應該是新建的專門用來放VSS數據庫的)。新創建的數據庫的目錄裏面只有數據庫,不包含VSS程序。
(e)      用戶管理
用戶管理無非是添加、刪除、編輯、修改口令,都在“Users”菜單下,一目瞭然。所有能設定的不過是用戶名、口令和是否只有只讀權限而已。最重要的功能是“Project Rights”,下面介紹。
(f)       使用項目權限Project Rights
項目權限是針對每個項目的用戶權力。使用項目權限首先要啓用項目權限,在菜單“Tools”下的“Options”裏面的“Project Rights”選項卡上,選中最上面的“Enable Rights and Assignments Commands”選擇框即可。
新用戶的默認權限建議只給一個“Read”就行了。然後確定。這時“Tools”下面原來不可以使用的菜單全部可以使用了。
現在可以給項目設定權限了。打開菜單“Tools”下面的“Project Rights”,顯示如下窗口:
在左邊選擇項目,右邊上面選擇一個用戶,右邊下面設定用戶的權限,如果只有“Read”權限可以選擇的話說明這個用戶是“Read-Only”,在編輯用戶那裏去掉只讀就可以了。因爲可以對每一級每個目錄單獨設定權限,因此很容易疏忽。設定完權限後最好再逐級檢查一遍看有沒有發生錯誤,有可能發生這樣的情形:試圖通過對級別較高的項目的權限的禁止阻止用戶訪問整個項目,然而對子項目用戶有單獨設定的訪問許可,因此對子項目實際上並未禁止訪問。
四種訪問權限含義如下:
“Read”,讀
“Check Out/Check In”,簽入/簽出,也就是寫
“Add/Rename/Delete”,添加/重命名/刪除,刪除的文件仍然存儲在數據庫中,可以被恢復,直到被銷燬
“Destory”,銷燬,銷燬的文件就再也找不回來了,這個是會造成無法挽回的後果的權力,通常不應該賦予任何一個一般用戶,僅保留給管理員。
這四種權力逐個包含,選中下面一個上面所有的會被自動選中,取消上面一個下面所有都回被自動取消。
如果一個用戶在當前選擇的項目上什麼權力都沒有就不會顯示在用戶列表中,必須用“Add User”添加進來,“Delete User”則刪除用戶在當前項目的所有權力並把用戶從列表中清除。
菜單“Tools”下的“Rights Assignments for User”則提供了對單一用戶的項目權力指派。功能相同,視圖不同。
(a)      藉助VSS開發項目
在程序菜單VSS的瀏覽器叫做“Microsoft Visual SourceSafe 6.0”,用來操作VSS。很多開發工具可以直接操作VSS,因此不需要使用這個工具。另外有些開發工具不支持和VSS瀏覽器混用(比如MS Visual Studio 裏面的InterDev),如果混用,開發工具可能不能正確地處理文件,因此如果項目在使用開發工具整合的VSS功能,建議不要跳過開發工具直接使用VSS瀏覽器。
如果項目採用VSS作爲版本管理,那麼被認可的代碼(以及其它文檔)就應當是VSS數據庫裏面的最新版本(而不是某個人的版本)。每天早上,每個人都從VSS中取得(叫做Get)最新版本放在自己的工作目錄下(這保證每個人用的都是最新的,並同時在每個人的電腦上做了備份),然後獲得特定文件的修改權(叫做Check Out,簽出),然後開始編輯,編輯完成之後放回並放棄修改權(叫做Check In,簽入),簽入以後其他人再去取得新版本的時候就會取得這個簽入的版本了。
VSS可以記錄每個變化,每個文件的每次簽入都產生一個新版本,可以單獨取得舊版本。VSS可以給整個項目貼上版本標籤(Label Version),比如“beta 2”,這個版本是用戶定義的版本(與VSS自身對每次簽入的自動編號不同),可以針對版本標籤取得版本,一個標籤標識的是做標籤之前簽入的最新版本。
VSS可以方便地比較目錄或文件,可以是VSS裏的不同版本或不同項目互相比較,也可以是VSS和VSS之外的目錄或文件比較,也可以是與VSS無關的外部文件或目錄的相互比較,比較的結果包括相同的、不同的、增加的、刪除的,對於文本文件可以直接可視化地顯示差異。
除非Admin用戶專門將數據庫配置爲允許多人簽出,否則不會有兩個人同時修改一個文件的情況發生(如果多人簽出,簽入時會要求首先合併,確認合併完成才能簽入)。儘管提供了多人簽出、分支開發、版本合併的功能,然而實際的合併操作仍然完全依靠腦力進行,因爲工具只能指出兩個版本有這些差異,但是這些差異如何合併卻完全依賴腦力判斷,絕非簡單地合併爲一個文件那麼容易。因此很多人總是儘可能地避免多人簽出或分支開發。
回覆引用開水白菜 2007-6-5 11:37:03
(b)      VSS瀏覽器
VSS瀏覽器擁有如下界面,工具欄和右鍵菜單很完善,使用起來非常方便。
界面下邊用來輸出一些沒用的信息,不必管它。左邊是項目列表,看起來就是一個目錄樹,根用“$/”表示,可以手工添加項目,然後往項目裏面添加文件,也可以一次把一個目錄(可以遞歸包含子目錄)添加進來成爲一個項目。右邊是項目下的文件,不包括子項目,顯示的信息包括簽出的用戶的名字和最後一個版本的時間以及簽出位置。右邊上面兩個文本是當前的項目名稱和項目的工作路徑(工作路徑是項目默認的本地目錄)
對項目可做的操作主要包括:創建項目、刪除項目、添加項目或文件、設置項目工作路徑、設置版本標籤、取得最新(最後)版本、簽出、簽入、撤銷簽出、查看歷史、比較差異、查看屬性(沒什麼屬性,關鍵是這裏可以恢復刪除的文件)。
對文件可做的操作主要包括:查看、編輯、簽出、簽入、撤銷簽出、取得最新(最後)版本、查看歷史、比較差異、刪除、重命名、查看屬性(文件類型很重要,二進制文件無法比較細節,只能比較相同或不同,文本文件則可以按行比較,有時VSS不能正確識別文件類型,需要手工修改)。
(a)      添加項目和文件
選中項目樹的節點,然後點右鍵選擇“Create Project”或者工具欄上的第一個(也許你的版本不是第一個)按鈕“Create Project”或者菜單“File”下的“Create Project”可以在選中的節點下創建一個新項目(看起來就是創建一個子目錄,事實上也沒什麼差別),需要輸入的是項目的名字,支持中文,有興趣的話順便把註釋也填上,省得以後忘了這個項目是幹什麼的。
很多時候可以通過添加一個目錄以及目錄下的所有內容來創建項目。選擇“Add Files”命令可以添加項目或文件。這個命令的名字實際上並不準確,它既可以添加文件又可以添加項目。
選擇左邊的文件然後點“Add”按鈕會把這個文件添加到當前項目,選擇右邊的目錄點“Add”按鈕則會把目錄添加到項目(也就是成爲一個子項目,存在一個選項讓你把整個目錄全部添加進來)。有時候你會注意到左邊不會顯示任何文件或者只顯示了一小部分文件,這是因爲同名文件已經在項目中存在,不可能添加同名文件進來的緣故。如果選擇的是項目,彈出的“Add”對話框不僅提供輸入註釋的地方,還在下面提供了一個選項:遞歸 “Recursive”,這個選項在很多地方都有,用起來很方便。選擇這個選項就不只是把當前目錄和下面的文件全部添加進來,而且把子目錄及子目錄下的內容也全部添加進來。曾經有人向作者抱怨VSS不好用,每個子目錄都需要一個一個創建,很麻煩,嘿嘿,他只是英文不太好又不願意查字典而已。
(b)      設置項目工作路徑
爲項目設置一個對應的本地目錄,用來取得版本進行編輯。只需要爲項目(工程意義的項目,而不是VSS的項目)的總入口的VSS項目設置一個工作目錄既可,獲得版本時下面的所有VSS子項目自動作爲一個子目錄得到。如果子項目設置了獨立的工作路徑,那麼這個工作路徑僅當對在這個子項目上執行操作的時候纔會有用。
(c)      取得項目最新版本
這個命令通常從項目的右鍵菜單獲得,名爲“Get Last Version”。
目標位置默認是項目的工作路徑,但可以更改。“Recursive”遞歸,若選中可以得到整個項目樹,否則只得到項目下的文件而不包含子項目。“Make writeable”,默認取得的文件是隻讀的(Check Out纔是獲得可編輯的版本的合理方式),若選中則不設置只讀屬性。
(d)      簽出項目Check Out
一次性簽出項目下的所有文件,適合一個項目(子項目)下所有文件都歸一個開發人員負責的情況。
若選擇遞歸則連子目錄下的東西一起簽出。“Don`t get local copy”,不取得本地版本,這樣不會覆蓋本地已有的版本(也許本地版本包含着你一個通宵的勤苦工作,當然不能隨便覆蓋)。
簽出的文件沒有隻讀屬性,可以修改。過程上應該首先簽出纔有權修改文件,簽入以後修改纔會被其他人認可。如果文件已經被簽出,就應該等待或者去跟簽出者協商,絕不應該在沒有簽出的情況下擅自修改本地文件。任何人都應該服從這一點,否則項目版本將仍然陷入混亂。
(e)      簽入項目Check In
一次性簽入一批文件。不簽入別人看不到你的修改。
有遞歸選項,可以連子目錄一起簽入。“Keep checked out”,保持簽出狀態,在頻繁修改代碼時經常會這樣做,保存一箇中間版本然後立即繼續修改。“Remove local copy”,刪除本地版本,這個主意不好,萬一VSS服務器硬盤壞了不就完蛋了,不過你也許有別的方面的考慮。
(f)       撤銷簽出Undo Check Out
如果後悔了,不想修改文件,可以撤銷簽出。

有遞歸選項。還要選擇本地版本的處理方式,可以用VSS裏面的版本覆蓋,也可以留着不管它,還可以刪除,要仔細斟酌。
(g)      顯示歷史記錄Show History
查看項目的所有歷史,包括增加文件、刪除文件、簽入文件(文件有更改)。

可選項包括遞歸(包括子目錄的歷史)、包括文件的歷史、包括版本標籤、只包含標籤(會禁止文件歷史)、從什麼時候開始、到什麼時候(時間格式大概按照操作系統來的,至少YYYY-MM-DD是合法的時間格式)、哪個用戶。默認沒有遞歸選項,多數時候需要加上這個選項,其餘選項不常用。顯示的歷史記錄如下圖所示:
按照時間順序列出了所有歷史,可以注意到文件file1.cpp在“Added”之後有兩次簽入,這兩次簽入之間有一個Label“Labeled‘v1’”,Label對應項目下的所有文件,除非子項目用一個同名的Label覆蓋(這種情形應當避免)。這個窗口提供了很重要的項目管理功能。
“View”,查看選中的文件的內容,就是查看以前版本的內容。
“Details”,查看歷史記錄的詳細信息,有一些內容是可以編輯的。清除Label的內容將導致Label被刪除,沒有獨立的刪除Label命令,這就是刪除Label的方法。
“Get”,取得選中的文件的歷史版本或者取得選中的Label版本(label之前的最新版),會提示取得版本放到哪裏去,對項目也有遞歸選項。能夠取得任何時候的歷史版本,這個功能纔是版本控制系統存在的價值。
“Check Out”,簽出文件或項目。
“Share”,共享。兩個項目可以共享一個文件,兩邊看起來各自有一份,但其實是同一份,一次只能由一邊簽出。通常用菜單“SourceSafe”下的命令執行,共享以後可以斷開搞分支開發。
“Report”,報告歷史,可以報告到打印機、剪貼板或者文件,可以包含文件歷史和版本差異。
(h)      顯示差異Show Differences
這也是關鍵功能。可以比較兩個項目或目錄的差異,包括一邊有而另一邊沒有的文件和內容不同的文件。
默認情況下比較的是項目和項目的工作目錄的差異,以“$”開頭的是VSS項目,但兩個都可以用“Browse”改變,所以實際上可以比較任何VSS和目錄的差異。下面四個選項全選是最全面的,顯示所有的相同和不同。遞歸選項選中可以包含子項目或子目錄。下圖是比較結果:
存在下列差異:
demo.cpp在項目中存在,但在工作目錄不存在,藍色顯示。
file1.cpp有差異,圖標到有紅色標記。
file2.txt沒有差異。
file1.cpp.bak和“新建 文本文檔.txt”項目裏面沒有,綠色顯示。
對於這些差異可以用右鍵菜單分別處理(注意鼠標點在哪邊的文件上可能是不同的,作者的習慣是在這裏只查看差異和添加文件,從不在這裏刪除)。
對於項目裏面有但工作目錄沒有的,可以從項目裏刪除,也可以取得最新版本或簽出。
對於項目裏面沒有的,添加到項目裏面,或者從目錄裏刪掉(真的刪除了文件,而不是僅僅從列表刪除)。
對於有差異的,可以查看差異(產生一個文件的差異比較,這是很常用的功能)簽入或撤銷簽出。
對於沒有差異的,可以刪除或簽出。
(i)        設置版本標籤Label
給項目做一個版本號,這個標籤代表的版本是做這個標籤的時間之前的最新版本。一般在管理上要求做版本標籤(有時稱之爲封版)之前所有文件都已簽入(VSS並不要求這樣),以後就可以取得標籤版本。如果標籤搞錯了,可以在項目歷史裏面查看標籤細節,然後將標籤名稱修改,如果要撤銷標籤就把標籤名稱清空。
(j)       取得歷史版本
因爲這是版本控制的標誌功能之一,所以重複一次。
取得項目歷史版本,在項目上查看歷史,找到合適的Label,選擇“Get”命令。
取得文件歷史版本,在項目或文件上查看歷史,找到合適的版本,選擇“Get”命令。
回覆引用開水白菜 2007-6-5 11:41:51
(a)      取得最新版本
Get Last Version,VSS數據庫裏的最後一個版本會放到指定的目錄下,默認是項目的工作目錄。
(b)      簽出
Check Out,然後就可以修改。
(c)      簽入
Check In,然後別人取得最新版本就可以看到你的修改。
(d)      撤銷簽出
Undo Check Out,放棄修改權。對本地文件有三種處理方式:用VSS版本覆蓋、保留、刪除,請謹慎選擇。
(e)      查看和編輯(View,Edit)
VSS提供整合的查看、編輯能力(當然通常我們是在專門的開發環境中工作的)。這兩個功能有同樣的界面,只是默認操作不同,View的默認操作是編輯,Edit的默認操作是簽出並編輯(一個典型的糟糕設計)。
不管從哪個命令進入都可以改變“Do you want to”選項進入另外一個命令。查看或編輯的工具可以是VSS內置程序或者操作系統註冊的程序(如果沒有註冊的程序則該項不可用)或者手工選擇一個不同的程序。
(f)       顯示文件歷史Show History
比項目的顯示歷史少一點選項,但顯示結果有不同的命令可用。
這裏每個文件版本都獲得了一個版本號“Version”,是從1開始的自然數序號,每次簽入都產生一個新版本(但沒有修改的簽入不產生新版本)。注意到有一個版本標籤“v1”是來自項目的版本標籤。
這裏多出幾個不同的命令可用:
“Diff”,比較差異,默認跟工作目錄的版本比較,但選中兩個不同的版本(用Ctrl鍵)也可以進行兩個歷史版本之間的比較,比較的結果實可視化的,非常直觀(僅限於文本文件,對二進制文件只能報告相同或不同)。
“Pin”,訂住,被訂住的版本成爲最新版,別人取最新版本只能取得被訂住的版本,而不影響簽出者修改文件、簽入、簽出。只能訂住還沒有被簽出的文件。訂住可以避免其他開發者得到一個不可用的中間版本。
“Rallback”,回滾,選中的版本之後的版本都會被刪除,選中的版本成爲最新版。出於對歷史的尊重,先簽出,然後取得歷史版本覆蓋到工作目錄,然後簽入,這也許是更好的回滾方式,畢竟一個糟糕的版本也是一個版本。
(g)      文件比較Show Differences
重要功能。可以直接從右鍵菜單進入,也可以從文件歷史結果窗口進入,還可以從項目差異結果進入。
比較的兩個文件都可以改變到VSS數據庫裏的一個文件或者一個普通文件,VSS數據庫的文件還可以帶上VSS的版本號。下面的選項一般不用修改,格式如果選擇爲SourceSafe或Unix,就會使用原始方式顯示結果,很不爽,還是Visual比較好。結果如下圖:
原來的文件第三行被刪除,文件最後又增加幾行,一目瞭然,點工具欄上的向上向下箭頭可以查看下一個上一個差異。
(h)      文件屬性
文件屬性首要關心就是文件類型,Text文件可以按行存儲,按行比較,Binary文件則只能按照原始格式存儲,每個版本都是一個完整文件,佔用很大空間,而且只能比較出相同或不同。可以在文件屬性窗口改變這個屬性。如果某個文件VSS不能正確存儲,就只能改爲二進制格式。有時候VSS自動判斷出錯,也要逐個修改文件屬性。
其他幾項暫時沒什麼可說的,需要用的時候自然就會了。
很多開發工具都整合了VSS支持,此時最好只用開發工作操作。開發工具對VSS的操作本質上與VSS瀏覽器是一樣的,不過是簽入簽出而已。只是一定不要忘了及時簽入,否則你的工作是能被別人看到的。
(a)      UNICODE、UTF-8的問題
ANSI格式沒有問題,UTF-16、UTF-8有問題,不能正確識別,存儲的文件會錯亂。微軟承認麻煩很大,詳細的說明MSDN裏面可以查到,下面的斜體文字引自MSDN文檔“ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052
/vsintro7/html/
vxtsksaving
fileswithencoding.htm”
爲了方便代碼在特定語言和特定平臺上進行顯示,可將文件與特定字符編碼建立關聯。
如果使用 Visual SourceSafe 以 ANSI、UTF8 或 Unicode 格式存儲文件,請注意它們各自的以下限制。
? ANSI 文件只允許使用當前代碼頁中支持的字符,這會限制國際使用。
? Unicode 文件無法使用共享簽出、差異檢查或合併功能,原因是此類文件是作爲二進制文件處理的。可在國際文件中使用此格式。
? UTF8 文件在 Visual SourceSafe 中不能安全地工作,因爲在簽入、簽出、差異檢查和合並過程中該文件會被更改,而這會導致 UTF8 文件編輯器出現問題。
 
(b)      InterDev開發Web應用的問題
不可繞過InterDev直接使用VSS瀏覽器簽入簽出,會死人的。InterDev實際上藉助IIS訪問VSS,所以會有這個問題。很幸運,vs.net裏面已經沒有InterDev了。
(c)      文件比較的問題
有時候會報告文件有差異但卻看不出差別,也許是換行符的差異,也許不是,如果執行簽入會發現並沒有簽入(這意味着簽入程序並不認爲文件有差別)。如果是6.0C,這種情況會非常多,6.0D則好很多,基本上不會出現。因爲是C版大量使用所以特別提到這個問題。順便說一下,C版和D版可以混用,沒發現什麼問題。
(d)      簽入無效的問題(與CuteFTP有關的)
有時候看起來簽入成功但實際上並未簽入。如果文件是用CuteFTP下載到本地的,那麼可能是因爲CuteFTP顯示FTP文件的窗口需要刷新。推測可能是CutFTP下載文件時使用舊的文件信息,VSS簽入時發現文件是舊的就認爲不是新版本不需要簽入。
1 有時會出現某個文件無權 GET 的問題,重起 SERVER 端機器即可解決
2 有一次,不知因何原因(可能是病毒),Sourcesafe 的數據庫訪問權限變了,需要在 Windows 頁面重新分配所有權
3 建議經常做 SourceSafe 備份,以便文件丟失時(Sourcesafe 大了會丟失),可以挽回,備份採用 WINDOWS 的自動備份功能即可(管理工具中有一個備份工具,排定一個計劃,即可自動備份)
4 瞭解 sourcesafe 目錄結構的方法如下:將所有內容 GET 出來, 用 TREE>*.txt(DOS命令),即可將該目錄結構存儲到一個文本文件中 。
 
 

發佈了39 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章