• svn常用命令行和批处理


    转自:http://blog.csdn.net/magictong/article/details/5206546

    原作者若觉得有侵权行为,请立即与我联系,本人立即处理。

     在进行大量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. Most subcommands take file and/or directory arguments, recursing
    7. on the directories. If no arguments are supplied to such a
    8. command, it recurses on the current directory (inclusive) by default.
    9. Available subcommands:
    10. add
    11. blame (praise, annotate, ann)
    12. cat
    13. changelist (cl)
    14. checkout (co)
    15. cleanup
    16. commit (ci)
    17. copy (cp)
    18. delete (del, remove, rm)
    19. diff (di)
    20. export
    21. help (?, h)
    22. import
    23. info
    24. list (ls)
    25. lock
    26. log
    27. merge
    28. mergeinfo
    29. mkdir
    30. move (mv, rename, ren)
    31. propdel (pdel, pd)
    32. propedit (pedit, pe)
    33. propget (pget, pg)
    34. proplist (plist, pl)
    35. propset (pset, ps)
    36. resolve
    37. resolved
    38. revert
    39. status (stat, st)
    40. switch (sw)
    41. unlock
    42. update (up)
    43. Subversion is a tool for version control.
    44. 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 checkout https://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文件的日志。

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

    svn的命令就介绍到这里了,可以和vc的命令汗联合起来,这样就可以直接更新编译了,如下:

    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. @echo 编译
    10. msdev "h:/myprj/VulInfoDataBase/VulChk/myprj.dsw" /MAKE "TSVulChk - Win32 Release"
    11. pause
  • 相关阅读:
    RadioButton练习(android)
    关于 RArrayFixFlat 与 RArray 与 CArrayPtrFlat 的测试
    How do I add an attachment to the message
    Grid View
    android 布局文件属性说明(转)
    File 存储(android)
    How to Make an HTTP Connection Using TCP/IP with RSocket
    使用RHTTPTransaction后产生CONE 36 Panic的解决办法
    SharedPreferences 存储(android)
    对话框的练习(android)
  • 原文地址:https://www.cnblogs.com/SharkXu/p/SVNCommand.html
Copyright © 2020-2023  润新知