寫程序,做產品,過日子

          成功其實很簡單,就是強迫自己堅持下去

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            69 Posts :: 1 Stories :: 92 Comments :: 0 Trackbacks

          最近工作需要將三四百個DLL文件匯入到VSS數據庫中,并且一個個打上Label號,label號取的DLL的版本號(就是選中,點擊鼠標郵件,屬性里面可以看到的版本號),初步算了一下,這樣幾百個文件,一個Check out/Check in,再找到Label號,打上Label號,少說也要花上一兩天的時間,這樣實在是太慢了。下午希望能夠通過在DotNet中編程來操作VSS數據庫,于是查幫助文檔,沒有看到相關資料,倒是看到說VSS有命令行可以使用。于是網上搜了一下,也沒看到幾篇介紹VSS命令行的文章,還是看幫助文檔吧,看了一個下午,一個晚上。再結合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

          Technorati : ,

          posted on 2006-12-05 18:01 Welkin Hu 閱讀(870) 評論(1)  編輯  收藏 所屬分類: Microsoft

          Feedback

          # re: 命令行中使用VSS (轉貼) 2009-05-13 14:23 cchallenge
          看了您寫的受益匪淺。很有幫助。我在自己機器上嘗試一下可以。

          但是如果我安裝的是客戶端。那么在客戶端用命令行的形式,訪問服務器,取得服務器vss上的文件。要如何設置ssdir呢。

            回復  更多評論
            

          主站蜘蛛池模板: 芜湖市| 会昌县| 噶尔县| 苍梧县| 丰顺县| 凉城县| 科尔| 渭南市| 永城市| 青龙| 瓦房店市| 太保市| 弥勒县| 昌江| 江孜县| 鄯善县| 城市| 吴江市| 鹤山市| 博爱县| 台北县| 甘德县| 巫山县| 皮山县| 隆回县| 平度市| 嵊泗县| 鹿泉市| 长岭县| 奈曼旗| 宁河县| 衡阳县| 东台市| 徐闻县| 龙里县| 鸡泽县| 友谊县| 民县| 乌恰县| 油尖旺区| 枝江市|