SVN操作指南——命令行方式
SVN是Subversion的简称,是一个开放源代码的版本控制系统。
下载地址
http://www.svn.org.cn/download
创建新仓库
# 使用命令行创建工程目录
mkdir proj_name
# 进入到目录
cd proj_name
# 执行初始化仓库命令,以创建新的svn仓库
svnadmin create /path/to/repository
添加新的项目
# 添加本地项目
svn import project file:///repository_name/project -m "Comment"
# 添加远程项目
svn import project http://host/svn_dir/repository_name/project -m "Comment"
检出项目
# 检出远程项目到当前路径下
svn checkout https://path/to/repository --username [用户名] --password [用户密码]
# 检出本地项目到当前路径下
svn checkout file:///repository_name/project/trunk project
# 检出远程项目到当前路径下,无加密无账户
svn checkout http://host/svn_dir/repository_name/project/trunk project
列出仓库中的项目
# 列出本地仓库中的项目
svn list --verbose file:///repository_name/project
# 列出远程仓库中的项目
svn list --verbose http://host/svn_dir/repository_name/project
创建新目录
此种方式创建的目录不需要进行add操作
# 若要在您的工作副本中创建新目录
svn mkdir PATH
# 若要在您的项目存储库中创建新目录,请键入:
svn mkdir URL
# 移动文件或目录:
svn move
# 当冲突解决完成后输入指令告诉管理库冲突已解决:
svn resolved
# 撤消您的更改:
svn revert
# 转换工作副本:
svn switch
状态查询及添加文件
# 给出新文件,已经改变的文件和被删除的文件状态列表
# 在当前项目路径下输入命令
svn status
# 添加文件或目录
svn add [file_path or file]
查看文件差异与清理工作副本
# 查看文件之间的差异:
svn diff [file]
# 查看带有修订和作者信息的特定文件的内容:
svn blame [file]
# 查看特定文件的内容:
svn cat [file]
# 清理工作副本:
svn cleanup [file]
提交与更新
# 提交(commit):
svn commit -m "Comment"
svn commit http://host/svn_dir/repository/project_dir
# 更新(update):更新仓库中的文件到本地。
svn update
标签和特殊版本项目
# 使用copy命令
svn copy http://host/repos/project/trunk http://host/repos/project/tags/1.0.0
# 用于创建某个特定版本的快照(snapshot)
svn list http://host/repos/project/tags/1.0.0
分支与合并
# 新建分支
svn copy trunk branches/my-branch
# 进入分支目录,执行提交
svn commit -m "Creating a private branch of /trunk."
# 进入主干目录下,执行合并分支到主干上
svn merge branches/my-branch
# 进入分支目录下,执行合并主干到分支上
svn merge trunk
合并及日志信息查看等
# 在本地计算机上导出空目录树:
svn export
# 打印有关工作副本中路径的信息:
svn info
# 查看提交日志信息:
svn log
# 合并更改:
svn merge
帮助信息
# 查看svn的帮助
svn help
# 查看svn子命令的帮助
svn help subcommand
# 查看svn管理权限命令的帮助
svnadmin help [subcommand]
巩固练习
- 新建一个工程目录并创建版本管理库
- 在工程目录下新建几个文件并添加到版本管理
- 提交版本管理库最新的变动并按标准写好日志
- 新增两个分支:hotfix、dev
- 修改dev分支下的文件内容并提交(svn文件只需add一次)
- 切换到master分支,合并dev分支到master分支