以下是 SVN(Subversion)常用二级命令的详细说明及使用示例,按功能分类整理,结合应用场景和参数解析,便于快速掌握核心操作。


📁 ​​一、基础操作命令​

  1. checkout (co)
    ​功能​​:从版本库检出代码到本地工作副本。
    ​语法​​:svn checkout <URL> [本地路径]
    ​示例​​:

    svn co http://svn.example.com/project/trunk  # 检出主干
    svn co -r 202 http://svn.example.com/project/trunk mydir  # 检出特定版本到mydir目录
    

    ​关键选项​​:-r 指定版本号 。

  2. update (up)
    ​功能​​:将本地工作副本更新至版本库最新状态。
    ​语法​​:svn update [路径]
    ​示例​​:

    svn up          # 更新当前目录
    svn up -r 305   # 回退到版本305
    

    ​注意​​:若提交时提示“过期”,需先更新解决冲突 。

  3. commit (ci)
    ​功能​​:提交本地修改到版本库。
    ​语法​​:svn commit -m "提交日志" [路径]
    ​示例​​:

    svn ci -m "修复用户登录Bug" src/auth.c  # 提交指定文件
    svn ci -m "更新配置文件"                 # 提交所有修改
    

    ​选项​​:--no-unlock 保留文件锁 。


📂 ​​二、文件与目录管理​

  1. add
    ​功能​​:将新文件/目录纳入版本控制。
    ​语法​​:svn add <路径>
    ​示例​​:

    svn add config.ini       # 添加单个文件
    svn add docs/ --depth=empty  # 仅添加空目录(不包含内容)
    

    ​注意​​:需后续执行 commit 生效 。

  2. delete (del, rm)
    ​功能​​:删除版本库或本地文件。
    ​语法​​:svn delete <URL或本地路径>
    ​示例​​:

    svn rm old_module.py        # 删除本地文件并标记待提交
    svn rm -m "移除冗余模块" http://svn.example.com/project/trunk/old_module.py  # 直接删除版本库文件
    

    ​推荐流程​​:先本地删除再提交 。

  3. mkdir
    ​功能​​:创建纳入版本控制的目录。
    ​语法​​:

    svn mkdir <本地路径>       # 本地创建(需提交)
    svn mkdir <URL> -m "日志"  # 直接在版本库创建
    

    ​示例​​:

    svn mkdir new-feature      # 本地创建目录
    svn mkdir -m "创建docs目录" http://svn.example.com/project/trunk/docs
    

🔍 ​​三、版本查看与比较​

  1. log
    ​功能​​:查看提交历史。
    ​语法​​:svn log [路径]
    ​示例​​:

    svn log -l 5           # 显示最近5条日志
    svn log -v src/main.c   # 查看文件详细修改记录
    

    ​选项​​:-v 显示修改文件列表;--stop-on-copy 显示分支起点 。

  2. diff (di)
    ​功能​​:比较差异。
    ​语法​​:svn diff [-r 版本1:版本2] [路径]
    ​示例​​:

    svn di                  # 比较当前所有修改
    svn di -r 100:105 app.c # 对比版本100与105的差异
    svn di -c 202           # 查看版本202的变更内容
    
  3. blame (annotate, ann)
    ​功能​​:逐行显示文件修改者和版本。
    ​语法​​:svn blame <文件>
    ​示例​​:

    svn ann -r 150:200 utils.py  # 查看150到200版本间的修改记录
    

🌿 ​​四、分支与标签管理​

  1. copy (cp)
    ​功能​​:创建分支或标签。
    ​语法​​:svn copy <源URL> <目标URL> -m "日志"
    ​示例​​:

    # 创建分支
    svn cp http://svn.example.com/project/trunk \
           http://svn.example.com/project/branches/feat-login \
           -m "创建登录功能分支"
    # 创建标签(标记发布版本)
    svn cp http://svn.example.com/project/trunk \
           http://svn.example.com/project/tags/v1.0 \
           -m "发布v1.0"
    
  2. merge
    ​功能​​:合并分支或版本差异。
    ​语法​​:svn merge -r <起始版本>:<结束版本> <源URL> [本地路径]
    ​示例​​:

    # 将分支合并到当前主干
    svn merge http://svn.example.com/project/branches/feat-login
    # 回滚版本(反向合并)
    svn merge -r 305:300 app.py  # 将305到300的变更撤销
    

    ​关键点​​:合并后需解决冲突并提交 。


⚙️ ​​五、属性与配置管理​

  1. propset (pset, ps)
    ​功能​​:设置文件属性(如忽略规则)。
    ​语法​​:svn propset <属性名> <值> <路径>
    ​示例​​:

    svn ps svn:ignore "*.log" logs/  # 忽略logs目录下所有.log文件
    
  2. proplist (plist, pl)
    ​功能​​:列出属性。
    ​语法​​:svn proplist [路径]
    ​示例​​:

    svn pl -v src/  # 显示src目录下所有属性及其值
    

🛠️ ​​六、冲突解决与维护​

  1. resolve
    ​功能​​:标记冲突已解决。
    ​语法​​:svn resolve <文件>
    ​示例​​:

    svn resolve config.ini  # 手动编辑冲突后执行
    

    ​注意​​:仅标记状态,不自动修改内容 。

  2. cleanup
    ​功能​​:修复工作副本锁问题。
    ​语法​​:svn cleanup [路径]
    ​示例​​:

    svn cleanup  # 当操作中断导致副本锁定时使用
    

​命令速查表​

​命令​ ​功能简述​ ​常用示例​
svn status (st) 查看工作副本状态 svn st -u (显示更新提示)
svn info 显示版本库信息 svn info (查看当前URL和版本)
svn revert 撤销本地修改 svn revert file.c
svn export 导出干净代码(无.svn目录) svn export http://svn.example.com/project
svn switch (sw) 切换工作副本指向的分支 svn switch http://svn.example.com/project/branches/dev

更多命令细节可通过 svn help <子命令> 查看(如 svn help merge)。
​提示​​:

  • 使用 -r 指定版本号,支持 HEAD(最新)、BASE(本地基线)等关键字 。
  • 冲突解决流程:update → 手动修改 → resolvecommit
posted on 2025-04-12 20:59  LeeHang  阅读(350)  评论(0)    收藏  举报