svn常用命令行和批处理

 转自  http://blog.csdn.net/magictong/article/details/5206546 
分类: common   7148人阅读  评论(1)  收藏  举报
svn subversion 服务器 variables command delete

      在进行大量svn更新和多个工程联合编译时,如果是对你来说是一件经常重复做的事情,譬如更新代码编译版本;更新代码,编译版本并升级之类的重复性很高,枯燥而且容易出错的事情,使用批处理来统一管理和处理将大大简化工作流程,使编版本,升级成为一件快乐的事情,想一下,要升级了,准备工作做好后,运行下批处理,“哗哗”就跟你有条不紊的做好了,多么惬意的一件事情,而且不可能产生人为原因的错误,要统一批处理化,那就自然要熟悉各种工具的命令行了,首先来看看svn的,嘿嘿。

      svn的命令行的详细使用,这篇文章讲得比较详细:http://www.open.collab.net/scdocs/ddUsingSVN_command-line.html.zh-cn,但是一般开发人员用不了这么多,下面简单介绍我常用的5-6个:

      1、help,查看有你当前的svn版本支持哪些命令,在控制台下输入svn help,回车,显示如下:

[cpp]  view plain copy
  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。

[cpp]  view plain copy
  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盘根目录下。(注意,运行之后,如果是第一次运行很可能向你询问用户名和密码等信息)

[cpp]  view plain copy
  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环境变量,那么执行此命令时会报如下的错误:

[cpp]  view plain copy
  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的工作目录,否则会执行失败)。

[cpp]  view plain copy
  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 plain copy
  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 plain copy
  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  

你可能感兴趣的:(common)