参考:https://www.tutorialspoint.com/svn/svn_branching.htm, https://www.runoob.com/svn/tortoisesvn-intro.html
Subversion介绍
开源版本控制系统
基本概念
- 版本库(repository)
- 主干(trunk)
- 相当于git中的master/main
- 标签(tags)
- 可以给特定revision标记命名,方便识别和记忆
- 分支(branches)
- 工作副本(working copy)
- 通过检出(checkout)操作获取仓库的一个副本,这个副本是私人的,别人无法访问
- 提交变更(commit changes)
- 将工作副本中的变更提交到repo中的操作。具有原子性,要么全部完成,要么完全没有执行,不会出现一般的变更
安装及配置
生命周期(工作流程)
- 创建版本库
- 检出(checkout)
- 更新(update)
- 执行变更
- 检查变更
- 在提交代码前应当对所作更改进行重审(review)。可以用status查看有变化的文件,用diff显示一个文件的详细修改地方
- 修复错误
- 如果对于某个文件的修改导致了错误或其他不满意的情况,可以用revert操作使其回到刚update时候的情况。revert操作可以指定一个、多个或者全部修改的文件
- 修复冲突
- 在合并(merge)操作时可能会出现冲突。用resolve操作检查并处理冲突
- 执行变更
- 在执行变更之前需要通过add操作将修改的文件添加到pending change list中
修复冲突操作流程
- 查看冲突
- update的时候如果出现冲突就会直接让你选操作,选择diff-full操作查看所有冲突
- 推迟冲突(postpone)
- 选择postpone操作会创建两个不同的版本
- 解决冲突
- 可以手动修改原文件以解决冲突
- 然后通过resolve操作告诉VCS这个问题解决了
注意 由于参与的项目都没有分支和打标签的习惯,以下内容暂不学习