天天看點

指令行中使用VSS (轉貼)

最近工作需要将三四百個DLL檔案彙入到VSS資料庫中,并且一個個打上Label号,label号取的DLL的版本号(就是選中,點選滑鼠郵件,屬性裡面可以看到的版本号),初步算了一下,這樣幾百個檔案,一個Check out/Check in,再找到Label号,打上Label号,少說也要花上一兩天的時間,這樣實在是太慢了。下午希望能夠通過在DotNet中程式設計來操作VSS資料庫,于是查幫助文檔,沒有看到相關資料,倒是看到說VSS有指令行可以使用。于是網上搜了一下,也沒看到幾篇介紹VSS指令行的文章,還是看幫助文檔吧,看了一個下午,一個晚上。再結合C#或者C/C++的使用,基本上以後可以實作自動Check Out/Check In并且自動打Label号了。簡單總結了一下,下面是VSS的一些常用指令和操作:

1.setup environment variable: //指向ss.exe所在的路徑

path=%path%;C:\Program Files\Microsoft Visual Studio\VSS\win32

2.指向VSS資料庫的所在目錄

set SSDIR=\\gqa-eric-lv\VSS\

set SSDIR=\\Guruvss\erp$\

3.登陸VSS:

ss CP -Yeric,eric123 -I- -s\\gqa-eric-lv\vss

4.擷取任一目錄的任一檔案到本機(下例将$/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 兩個參數,作用未知)

6.set Current Project:

ss cp $/SQL-sample

7.vss指令行是大小寫不敏感的;指令行中的指令不需要全名,同sql一樣,隻要是可以識别的名字及可,如Dir就是directory的縮寫;

(遵守UNC通用命名規則,Universal Naming Convention)

8.一些通用的指令行選項:

-C 為指定項(可以是多項)做注釋 (Dir例外)

-O 重定向指令

-V 操作某項的指定版本

-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 指明本機副本是否隻讀(使用此參數,表示writable)

-N 在長短檔案名兩種模式間切換

-I 任何環境下都不提示輸入

-Y 指定使用者名和密碼

-?, -H 兩個參數的作用都是獲得線上的幫助

9.指令中有空格時,用雙引号括起整個選項,如用ss CP "-Yeric Lv",eric123 而不用ss CP -Y"eric lv",eric123,

10.啟動圖形界面:ssexp -s\\gqa-eric-lv\vss

11.ss指令中,/表示VSS的目前目錄,$/表示根目錄,常用操作指令如下:

ss Add TEST.C "My long filename.H" ,把TEST.C和"My long filename.H"兩個檔案添加到目前項目;

ss Add -R *,把目前目錄的所有檔案及檔案夾(包括子檔案夾、檔案)添加到目前項目;

ss ADD -D- *.DLL,添加目前目錄的所有DLL檔案到目前項目,但不保留VSS上的曆史檔案(以節省空間);

ss Checkout TEST.C TEST.H Checkout目前項目中的兩個檔案

ss Checkout $/TESTDATA/TEST.C Checkout指定項目中的檔案

ss Checkout -R $/TESTDATA 循環Check項目$/TESTDATA

ss Comment TEST.C -V5 改變TEST.C的版本号為5的版本注釋

ss Comment TEST.C 改變TEST.C的最新版本的注釋

ss Comment $/TESTDATA 改變項目$/TESTDATA的注釋

ss Create $/WORD VSS的根目錄下,建立項目WORD

ss Create WORD VSS的目前目錄下,建立項目WORD

ss Cp $/WORD 設定$/WORD為Current Project

ss Cp .. 跳轉到目前項目的父項目

ss Delete $/PRJ/TEST.C 删除檔案TEST.C (delete指令删除的檔案,可以用直接add指令回複,如Add test.C)

ss Delete $/PRJ 删除項目 (不可以有兩個同名的檔案被delete,因為沒有真正删除)

ss -S Delete *.* 删除所有檔案,-S表示删除VSS上的檔案之後,删除本機檔案

ss Destroy $/PRJ/TEST.C 持久删除檔案(不可恢複)

ss Destroy $/PRJ 持久删除項目

12.其他的更改操作有:label,merge,move,password,purge,recover,rename,rollback,share,undocheckout,workfold,branch等指令,這些指令會改變VSS資料庫的内容或者環境。

13.VSS指令行中的比較/查找/顯示等不改變資料庫和環境的指令: diff,dir,FileType,Get,help,history,links,paths,project,properties,status,view,whoami

14.顯示最近的Version,Label資訊:SS properties

15.顯示Checkout的檔案:SS Status

繼續閱讀