什么是SVN?
- SVN全称SubVersion
- 它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。
- 支持平台(Window/Linux/MacOS)
SVN下载
服务端软件下载地址:VisualSVN Server
客户端软件下载地址:TortoiseSVN
SVN服务端和客户端的软件安装和配置,以及SVN服务配置与管理
SVN仓库:https://svnbucket.com/
SVN使用详解
SVN常用指令
- (Checkout)检出操作:
- 链接到SVN服务器端
- 更新服务器数据到本地
- 注:Checkout只需第一次链接时操作一次,以后如果进行更新操作请使用(update)更新指令
- (Commit)提交操作:提交本地数据到服务器
- (Upadate)更新操作:更新服务器数据到本地
- (Show Log)查看日志操作: 查看数据提交到服务器的所有日志
- (Revert)还原操作:将本地修改的文件还原到未修改之前
- (Unversion and add to ignore list)忽略操作:Commit时忽略标记了的文件夹/文件
- (Resoleve conflict using ‘mine’)版本冲突操作:使用我的解决冲突文件
- (Resoleve conflict using ‘theirs’)版本冲突操作:使用他们的解决冲突文件
- (Edit conflict)编辑冲突操作
- (Use text block from ‘mine’ before ‘theirs’)编辑冲突操作:使用我的解决冲突文件
- (Use text block from ‘theirs’ before ‘mine’)编辑冲突操作使用他们的解决冲突文件
扩张:
SVN图标集
- (normal)常规图标:当客户端文件与服务器文件完全同步的时候,系统就会显示以上图标
- (added)增加图标:我们编写的文件已经提交到队列中,系统会显示以上图标
- (modified)修改图标:客户端文件已经修改但是未提交,系统会出现以上图标
- (conflicted)冲突图标:当客户端文件与服务器数据存在冲突时,系统会出现以上图标
- (deleted)已删除图标:当服务器端的文件已经删除时候,那么客户端文件就会显示以上图标
- (readonly)只读图标:当客户端文件以只读的形式存在时,系统会出现以上图标
- (ignored)忽略图标:客户端文件已经忽略,不需要进行提交上传,系统会显示忽略图标。
- (locked)锁定图标:当服务器数据已经锁定的时候,客户端文件会自动显示锁定图标
- (non-versioned)无版本图标:我们编写的文件没有提交到队列中,系统会显示以上图标
SVN分支
什么时候需要开分支?
- 隔离线上版本和开发版本
- 大功能开发,不想影响到其他人,自己独立开个分支去开发
SVN经典目录结构
- trunk为主开发目录
- branches为分支开发目录
- tags为tag存档目录(不允许修改)
SVN代码暂存
什么情况下用到代码暂存?
- 代码改了很多,突然需要紧急修复一个bug,但是代码还没有写完,不能提交
- 代码重构了很多,突然需要发布新版本,但是代码还跑步起来,不能提交
方法:
- 右键选中TortoiseSVN——Shelve,可以将文件暂存起来
- 右键选中TortoiseSVN——Unshelve,可以取出暂存文件
SVN复杂的代码合并
可以尝试使用Beyond Compare合并代码/文件