SVN学习笔记
除了主流的Git,SVN也需要学一下,特别是命令行的使用。
基本概念
SVN(Apache Subversion)是Apache基金会的一个开源的VCS(版本控制系统)。
基本名词
- repository: 代码仓库。
- checkout: 从仓库检出代码到本地。
- commit: 修改完代码需要提交到仓库。
- update: 从代码仓库更新变更的代码到本地。
工作流
一般的工作流是这样:
- 先checkout远程仓库的代码到本地。
- 修改、添加、删除代码。
- 改完代码,提交之前先update代码防止冲突(如果修改了同一个文件中的同一行代码则会冲突)。
- 然后提交commit代码到仓库。
安装
官网:https://subversion.apache.org/
生命周期
- 创建版本库
版本库存放了代码和文件的变动历史。
使用create创建新的版本库。
- 检出
checkout用于从版本库拉取代码到本地。
- 更新
update用于更新版本库。
- 执行变更
执行变更包括:修改、添加、删除。
变更完毕后需要commit提交到版本库中。
- 复查变化
执行变更后,本地的代码就会比版本库要新,在commit之前最好复查一下代码。
使用status复查变更的文件,使用diff查看详细变更信息。
- 修复错误
想要撤销本地修改的文件,可以使用revert将本地文件恢复为版本库中的文件。
- 解决冲突
合并代码的时候可能发生冲突,merge操作可以自动处理合并代码。
可以使用resolve找出冲突。
- 提交更改
使用commit将变更提交到版本库,commit之前最好update一下本地代码。
创建版本库
- 创建版本库repo
1 | svnadmin create /opt/svn/repo |
检出
1 | svn checkout http://svn.server.com/svn/project_repo --username=user01 |
解决冲突
先update:
1 | svn update |
再提交。
如果再冲突则手动解决冲突。
提交
1 | # 查看状态 |
版本回退
放弃对文件的修改,使用revert。
1 | # 恢复单个文件 |
查看历史
- svn log
1 | # 查看两个版本之间的信息 |
- svn diff
1 | # 查看本地和版本库的差异 |
- svn cat
1 | # 查看一个版本的文件 |
- svn list
1 | # 用于查看目录中的文件 |
分支
1 | # 创建分支 |
标签
1 | # 创建tag |
GUI工具
windows平台有TortoiseSVN,mac平台有SnailSVN。