最近工作需要將三四百個(gè)DLL文件匯入到VSS數(shù)據(jù)庫中,并且一個(gè)個(gè)打上Label號(hào),label號(hào)取的DLL的版本號(hào)(就是選中,點(diǎn)擊鼠標(biāo)郵件,屬性里面可以看到的版本號(hào)),初步算了一下,這樣幾百個(gè)文件,一個(gè)Check out/Check in,再找到Label號(hào),打上Label號(hào),少說也要花上一兩天的時(shí)間,這樣實(shí)在是太慢了。下午希望能夠通過在DotNet中編程來操作VSS數(shù)據(jù)庫,于是查幫助文檔,沒有看到相關(guān)資料,倒是看到說VSS有命令行可以使用。于是網(wǎng)上搜了一下,也沒看到幾篇介紹VSS命令行的文章,還是看幫助文檔吧,看了一個(gè)下午,一個(gè)晚上。再結(jié)合C#或者C/C++的使用,基本上以后可以實(shí)現(xiàn)自動(dòng)Check Out/Check In并且自動(dòng)打Label號(hào)了。簡(jiǎn)單總結(jié)了一下,下面是VSS的一些常用命令和操作:
1.setup environment variable: //指向ss.exe所在的路徑
path=%path%;C:\Program Files\Microsoft Visual Studio\VSS\win32
2.指向VSS數(shù)據(jù)庫的所在目錄
set SSDIR=\\gqa-eric-lv\VSS\
set SSDIR=\\Guruvss\erp$\
3.登陸VSS:
ss CP -Yeric,eric123 -I- -s\\gqa-eric-lv\vss
4.獲取任一目錄的任一文件到本機(jī)(下例將$/ASP.Net/DataGridTest/index.aspx文件get到D:\tmp目錄)
ss get -GLD:\tmp $/ASP.Net/DataGridTest/index.aspx
(ss get, -GLpath Copies a file to the specified folder, not to the current or working folder. )
5.分屏顯示目錄ASP.Net中的所有文件和文件夾(包括子文件):
ss dir $/ASP.Net -R|more (另外,有-I -V 兩個(gè)參數(shù),作用未知)
6.set Current Project:
ss cp $/SQL-sample
7.vss命令行是大小寫不敏感的;命令行中的命令不需要全名,同sql一樣,只要是可以識(shí)別的名字及可,如Dir就是directory的縮寫;
(遵守UNC通用命名規(guī)則,Universal Naming Convention)
8.一些通用的命令行選項(xiàng):
-C 為指定項(xiàng)(可以是多項(xiàng))做注釋 (Dir例外)
-O 重定向命令
-V?操作某項(xiàng)的指定版本
-R Perform a command recursively.
-S Turn SmartMode on or off for the command.
-G Change the way the Get command works on any file retrieved to the local drive.
-W 指明本機(jī)副本是否只讀(使用此參數(shù),表示writable)
-N 在長(zhǎng)短文件名兩種模式間切換
-I 任何環(huán)境下都不提示輸入
-Y 指定用戶名和密碼
-?, -H 兩個(gè)參數(shù)的作用都是獲得在線的幫助
9.命令中有空格時(shí),用雙引號(hào)括起整個(gè)選項(xiàng),如用ss CP "-Yeric Lv",eric123 而不用ss CP -Y"eric lv",eric123,
10.啟動(dòng)圖形界面:ssexp -s\\gqa-eric-lv\vss
11.ss命令中,/表示VSS的當(dāng)前目錄,$/表示根目錄,常用操作命令如下:
ss Add TEST.C "My long filename.H" ,把TEST.C和"My long filename.H"兩個(gè)文件添加到當(dāng)前項(xiàng)目;
ss Add -R *,把當(dāng)前目錄的所有文件及文件夾(包括子文件夾、文件)添加到當(dāng)前項(xiàng)目;
ss ADD -D- *.DLL,添加當(dāng)前目錄的所有DLL文件到當(dāng)前項(xiàng)目,但不保留VSS上的歷史文件(以節(jié)省空間);
ss Checkout TEST.C TEST.H Checkout當(dāng)前項(xiàng)目中的兩個(gè)文件
ss Checkout $/TESTDATA/TEST.C Checkout指定項(xiàng)目中的文件
ss Checkout -R $/TESTDATA 循環(huán)Check項(xiàng)目$/TESTDATA
ss Comment TEST.C -V5 改變TEST.C的版本號(hào)為5的版本注釋
ss Comment TEST.C 改變TEST.C的最新版本的注釋
ss Comment $/TESTDATA 改變項(xiàng)目$/TESTDATA的注釋
ss Create $/WORD VSS的根目錄下,創(chuàng)建項(xiàng)目WORD
ss Create WORD VSS的當(dāng)前目錄下,創(chuàng)建項(xiàng)目WORD
ss Cp $/WORD 設(shè)置$/WORD為Current Project
ss Cp .. 跳轉(zhuǎn)到當(dāng)前項(xiàng)目的父項(xiàng)目
ss Delete $/PRJ/TEST.C 刪除文件TEST.C (delete命令刪除的文件,可以用直接add命令回復(fù),如Add test.C)
ss Delete $/PRJ 刪除項(xiàng)目 (不可以有兩個(gè)同名的文件被delete,因?yàn)闆]有真正刪除)
ss -S Delete *.* 刪除所有文件,-S表示刪除VSS上的文件之后,刪除本機(jī)文件
ss Destroy $/PRJ/TEST.C 持久刪除文件(不可恢復(fù))
ss Destroy $/PRJ 持久刪除項(xiàng)目
12.其他的更改操作有:label,merge,move,password,purge,recover,rename,rollback,share,undocheckout,workfold,branch等命令,這些命令會(huì)改變VSS數(shù)據(jù)庫的內(nèi)容或者環(huán)境。
13.VSS命令行中的比較/查找/顯示等不改變數(shù)據(jù)庫和環(huán)境的命令: diff,dir,FileType,Get,help,history,links,paths,project,properties,status,view,whoami
14.顯示最近的Version,Label信息:SS properties
15.顯示Checkout的文件:SS Status
Technorati : Microsoft, VSS