SVN基础功能总结(一)
author@Kizi
SVN作用
- 代码管理工具(UPdate&Commit)
- 可以记住每次的修改(Update)
- 查看所有的修改记录(Update时日志的内容)
- 恢复到任何历史版本
- 恢复已经删除的文件
SVN相比于Git的优势
- 轻量级,上手方便
- 目录级权限控制,企业安全必备
- 子目录CheckOut,减少不必要的文件检出
SVN主要应用场地
- 公司开发人员用来做代码的版本管理
- 用来存储一些重要的文件,例如合同规格书等
- 公司内部文件共享,并且能按目录划分权限(不同项目之间设置不同的权限,每个人可以浏览到的文件不同)
SVN仓库(服务端)
推荐:svnbucket.com(SVN桶)
SVN客户端
TortoiseSVN(Wins)
Cornstone(Mac)
SVN基本操作
- 检出:Checkout
- 新增:Add
- 提交:Commit
- 更新:Update(对文件夹更新:在文件夹下属的右键,单个文件:直接右键文件)
- 历史记录:Log 日志中
撤销和恢复
- 撤销本地修改:SVN还原&SVN Commit右键冲突项目选择还原
- 撤销已提交的内容:复原此版本所做出的修改(撤销提交,但是本地还是自己修改并提交的内容)
- 复原到指定的版本:日志->选择版本复原版本
忽略文件或文件夹
- 忽略文件夹:去除版本控制并添加到忽略列表(属性变化),忽略后该文件或文件夹不再具备SVN图标志显示
- 忽略文件:提交文件时,右键选择文件增加到忽略列表,也可以直接单机右键同上方法
- 忽略列表添加时:需要提交属性列表的提交(即告诉SVN这个文件在忽略列表中) 忽略列表删除,方法同上,状态栏会变成忽略列表删除。
冲突
- 什么情况最容易发生冲突:
- 多个人修改了同个文件的同一行(不同行通常会自动合并)
- 无法进行合并的二进制文件(不易合并,通常是一个人来修改)
- 怎么避免冲突
- 经常且及时update同步下他人的代码
- 二进制文件减少多人操作(尽量一个人操作)。(二进制文件,例如:jpg,bmp等)
- . 冲突了怎么办
- 冲突后mine 表示本地文件,r+num 表示第Num个版本的文件
- 右键冲突文件->使用自己或上传人的文本块(效率高,鲁棒性低)
右键冲突文件->编辑冲突(合并文件处红色行表示SVN无法自动合并,需要手动合并,行数对应上列的远程文件和本地文件的行数,行数左边会有“+”标注,右键选择正确的行数(即远程还是本地),单机使用此文本块),标记为解决即可。(效率低,鲁棒性高) - 其中红色代码代表有冲突的位置,黄色代码代表新添加的模块,橙色代码代表原有的模块
- 工作副本:自己修改的版本 工作副本:当前的版本
分支
(十分轻量,属于差异存储)
- 什么时候需要开分支:
- 隔离线上版本和开发版本(即Release版本和Debug版本)
- 大功能/模块开发,不想影响到其他人,自己独立地开设单独分支去开发,开发完成再合并
- 目录结构
- Trunk:主干文件,存放开发中的文件,到一定发行版本上线后可开设分支。合并后可开设最新分支用于旧版本分支的切换。
- branches:分支文件 ,用于修复Bug或独立开发,修复完成后不用再次再主干上修改,只需要合并至主干(发行)文件即可。
- tags