
一、基本检出与提交操作命令检出仓库svn checkout URL [本地目录]。检出深度选项--depthempty等价旧写法 -N 只检出这个目录本身里面什么都没有--depthfiles 检出该目录下的文件不包含任何子目录--depthimmediates 检出该目录下的文件 子目录的“空壳”子目录里是空的最常用的“一级目录”后续按需“放大”某一层稀疏检出的工作副本不是只读的之后可以单独把某个子目录补充完整。这里的关键区别是--set-depth 会永久修改该目录的记录深度--depth 只对这一次操作生效。# 单独把某个子目录拉全递归 svn update --set-depthinfinity project/src/main # 只在本次更新时再多展开一层不改记录深度 svn update --depthimmediates # 反过来收缩把某目录内容清掉只留壳 svn update --set-depthempty project/docs # 查看当前目录的记录深度 svn info --show-item depthTortoiseSVN 对应选项右键 → Checkout 时在 Checkout Depth 下拉框中选择Fully recursive全递归。检出完整的目录树。Only this item → emptyImmediate children, including folders → immediatesFully recursive → infinity在已检出的目录上右键 → Update to revision 或 Update 对话框中也有 Depth 下拉框并且带 Make depth sticky 复选框这分别对应 --depth 和 --set-depth。提交修改svn commit -m 提交说明更新到最新svn update二、文件与目录管理操作命令添加文件/目录svn add 文件名删除文件/目录svn delete 文件名移动/重命名svn move 源 目标复制svn copy 源 目标三、查看状态与信息操作命令查看工作副本状态快速确认本地变动如 M修改、A添加、?未追踪x 状态通常表示该文件或目录被外部定义externals definition所引用svn statusst查看文件/目录信息svn info [路径]查看仓库的提交历史包括作者、日期和描述svn log [路径] -l n 显示最近n条日志svn log -v -r 100只查看某个版本改动了哪些文件不关心内容查看差异svn diff [文件]列出仓库目录内容svn list (svn ls)列出仓库目录内容。例如svn ls http://svn.example.com 显示远程文件结构。查看特定版本的文件svn cat输出特定版本的文件内容。如 svn cat -r 100 file.c 显示历史版本。四、分支与标签操作操作命令创建分支/标签svn copy 源URL 目标URL -m 说明合并分支svn merge [选项] [源路径] [目标路径默认当前]切换分支svn switch 新分支URL五、撤销与回退操作命令撤销本地修改(只恢复已被版本控制的东西,新增的?文件不会被删,)svn revert 文件,默认不递归想要整棵树回退请务必带上 -R 或 --depthinfinity回退到指定版本svn merge -r 当前版本:目标版本 文件恢复已删除文件svn revert 文件名未提交时六、常用选项-m 说明直接添加提交说明--username 用户名指定用户名--password 密码指定密码--non-interactive非交互模式脚本中使用-r 版本号指定版本号七、实用小技巧查看文件修改历史svn blame 文件名清理锁定svn cleanup导出无.svn目录的副本svn export URL 目录忽略文件svn propset svn:ignore 模式 目录以上是 SVN 命令行最常用的操作适用于日常版本管理。对merge的总结