svn常用命令行和批處理

 轉自 http://blog.csdn.net/magictong/article/details/5206546 
分類: common 7148人閱讀 評論(1) 收藏 舉報

      在進行大量svn更新和多個工程聯合編譯時,如果是對你來說是一件經常重複做的事情,譬如更新代碼編譯版本;更新代碼,編譯版本並升級之類的重複性很高,枯燥而且容易出錯的事情,使用批處理來統一管理和處理將大大簡化工作流程,使編版本,升級成爲一件快樂的事情,想一下,要升級了,準備工作做好後,運行下批處理,“嘩嘩”就跟你有條不紊的做好了,多麼愜意的一件事情,而且不可能產生人爲原因的錯誤,要統一批處理化,那就自然要熟悉各種工具的命令行了,首先來看看svn的,嘿嘿。

      svn的命令行的詳細使用,這篇文章講得比較詳細:http://www.open.collab.net/scdocs/ddUsingSVN_command-line.html.zh-cn,但是一般開發人員用不了這麼多,下面簡單介紹我常用的5-6個:

      1、help,查看有你當前的svn版本支持哪些命令,在控制檯下輸入svn help,回車,顯示如下:

  1. usage: svn <subcommand> [options] [args]  
  2. Subversion command-line client, version 1.6.1.  
  3. Type 'svn help <subcommand>' for help on a specific subcommand.  
  4. Type 'svn --version' to see the program version and RA modules  
  5.   or 'svn --version --quiet' to see just the version number.  
  6.   
  7. Most subcommands take file and/or directory arguments, recursing  
  8. on the directories.  If no arguments are supplied to such a  
  9. command, it recurses on the current directory (inclusive) by default.  
  10.   
  11. Available subcommands:  
  12.    add  
  13.    blame (praise, annotate, ann)  
  14.    cat  
  15.    changelist (cl)  
  16.    checkout (co)  
  17.    cleanup  
  18.    commit (ci)  
  19.    copy (cp)  
  20.    delete (del, remove, rm)  
  21.    diff (di)  
  22.    export  
  23.    help (?, h)  
  24.    import  
  25.    info  
  26.    list (ls)  
  27.    lock  
  28.    log  
  29.    merge  
  30.    mergeinfo  
  31.    mkdir  
  32.    move (mv, rename, ren)  
  33.    propdel (pdel, pd)  
  34.    propedit (pedit, pe)  
  35.    propget (pget, pg)  
  36.    proplist (plist, pl)  
  37.    propset (pset, ps)  
  38.    resolve  
  39.    resolved  
  40.    revert  
  41.    status (stat, st)  
  42.    switch (sw)  
  43.    unlock  
  44.    update (up)  
  45.   
  46. Subversion is a tool for version control.  
  47. For additional information, see http://subversion.tigris.org/  

       如果你想查看某個具體命令的使用,直接svn help [command]即可,譬如想看看checkout的用法:svn help checkout,顯示內容比較多,自己去看看吧。

      2、update的用法,這個應該是用得最多的一個命令(或者叫操作吧)了,使用很簡單,你要更新哪個目錄,就先進到那個目錄,然後在那個目錄下運行svn update。譬如你要更新目錄:H:/QQDrPrj/APP/LightDog/QQDoctor3.2/Output。

  1. @echo off  
  2. set svnpath="H:/QQDrPrj/APP/LightDog/QQDoctor3.2/Output"  
  3. h:  
  4. cd %svnpath%  
  5. svn update  
  6. pause  

      3、checkout的使用方法,checkout就是把代碼或者其他資料從服務器上下載到本地的意思,所以是要指明服務器的地址的,首先你也要進到一個目的文件夾(就是你要把代碼下載到哪兒),然後就可以執行svn checkouthttps://xxxx/out了。下面一段腳本是將typedef文件夾下的所有文件包括typedef文件夾更新到h盤根目錄下。(注意,運行之後,如果是第一次運行很可能向你詢問用戶名和密碼等信息)

  1. @echo off  
  2. set svnpath="H:"  
  3. h:  
  4. cd %svnpath%  
  5. svn checkout https://xx.x.xx.xx:xxxx/svn/ims/APP/Output/TypeDef  
  6. pause  

      4、commit提交代碼到服務器上,和update的使用方法類似,但是要記錄一個log信息[加上 -m ""],svn commit -m ""。或者註冊環境變量SVN_EDITOR也可以(譬如註冊一個環境變量名爲SVN_EDITOR,值爲notepad.exe的環境變量),這樣的話直接svn commit也可以,如果你既沒有加-m ""又沒有註冊SVN_EDITOR環境變量,那麼執行此命令時會報如下的錯誤:

  1. svn: Commit failed (details follow):  
  2. svn: Could not use external editor to fetch log message; consider setting the $S  
  3. VN_EDITOR environment variable or using the --message (-m) or --file (-F) option  
  4. s  
  5. svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and  
  6.  no 'editor-cmd' run-time configuration option was found  

      5、add代碼或者文件到服務器,這個命令其實比較少使用命令行進行,嘿嘿!運行時要確保當前目錄下有你要增加的文件或者文件夾,直接執行 svn add myfile.txt 或者 svn add myforder,例如:下面是將h盤下Documents目錄下的engine文件夾增加到svn中(前提是Documents是一個svn的工作目錄,否則會執行失敗)。

  1. @echo off  
  2. set svnpath="H:/Documents"  
  3. h:  
  4. cd %svnpath%  
  5. svn add engine  
  6. pause  

      6、cleanup清理命令,能夠清理某個目錄下的一些執行失敗的事務,和update的用法類似。

      7、log查看日誌,可以查看某個目錄或者文件的日誌信息,這個可以在執行一批命令後再檢查下是否執行正確。用法很簡單,類似add命令,下面是查看Documents下面myfile.txt文件的日誌。

[c-sharp] view plaincopy
  1. @echo off  
  2. set svnpath="H:/Documents"  
  3. h:  
  4. cd %svnpath%  
  5. svn log "myfile.txt"  
  6. pause  

       svn的命令就介紹到這裏了,可以和vc的命令汗聯合起來,這樣就可以直接更新編譯了,如下:

[c-sharp] view plaincopy
  1. @echo off  
  2. @echo 請使用svn更新文件  
  3. set svnpath="h:/myprj/VulInfoDataBase"  
  4. h:  
  5. cd %svnpath%  
  6. svn update  
  7. explorer.exe "h:/myprj/VulInfoDataBase"  
  8. pause  
  9.   
  10. @echo 編譯  
  11. msdev "h:/myprj/VulInfoDataBase/VulChk/myprj.dsw" /MAKE "TSVulChk - Win32 Release"  
  12. pause  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章