TortoiseSVN 的使用
参考教程:TortoiseSVN 使用教程
入职必备技能SVN视频教程-2小时轻松玩转版本控制工具SVN
服务端下载地址:https://www.visualsvn.com/server/
客户端下载地址:https://tortoisesvn.net/downloads.html, 页面里有语言包补丁的下载链接。
1.SVN服务器创建仓库与用户
1.1 创建仓库
Regular FSFS库:基于标准FSFS数据存储创建一个常规的Subversion存储库。
Distributed VDFS库:基于VisualSVN分布式文件系统创建一个分布式Subversion存储库。VDFS存储库充当标准Subversion存储库,并允许在地理分布的站点之间复制数据。
选择仓库类型
Empty repository(推荐选项):空仓库
Single-project repository:包含'trunk', 'branches'和'tags'文件夹
trunk是主分支,是日常开发进行的地方。
branches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。又比如为不同用户客制化的版本,也可以放在分支中进行开发。
tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。
设置访问权限
nobody has access:所有人都没有权限
All subversion users have Read / write access:所有人都可以进行读和写操作
customiz permissions:自定义权限
创建成功!
1.2 创建用户
重设密码
1.3 修改仓库权限
右键仓库,属性
Permissions(修改权限)
Inherit from parent:继承父目录权限
No Access:无权限
Read Only:仅可读
Read / Write:可读写
2.使用Checkout检出仓库代码
2.1 查看仓库地址
右键
输入用户名和密码
成功检出!
3. 添加文件、修改文件
3.1添加文件
在文件夹下新建1.txt并保存
右键,commit
可以在上面的框写备注
上传成功!
3.2 查看日志
3.3 修改文件
修改文件并保存,提交修改
4. 版本回滚
打开1.txt,修改,此刻文件出现“!”号
如果你没有提交,那么直接删除此文件,然后 更新 即可, 发现文件回复了,并且为“✓”号。
如果你已经提交了,且有日志记录
注意:只是本地回到了这个版本,再次更新,会恢复到最新,提交的记录无法删除!!!
5.删除文件
提交删除
6.解决冲突
6.1 产生冲突的情况
当开发人员A和开发人员B从版本库同时检出文档1.txt,而A和B同事修改了1.txt的同一个地方,先提交的不会有任何问题,后提交的一方会在提交的时候产生冲突。
冲突会导致提交失败,并自动返回:
6.2 解决冲突
产生冲突的目录会变成以下这样:
右键选择编辑冲突
先删除问号
修改合并后的文件,点击保存,决定最终版本:
标记为解决
黄色感叹号消失
文件修改已经合并
重新提交
7.创建分支
假如你的项目(这里指的是手机客户端项目)的某个版本(例如1.0版本)已经完成开发、测试并已经上线了,接下来接到新的需求,新需求的开发需要修改多个文件中的代码,当需求已经开始开发一段时间的时候,突然接到用户或测试人员的反馈,项目中有个重大bug需要紧急修复,并且要求bug修复后要立即上线;此时应该怎么修复bug呢?是在当前已经开发新需求的基础上进行修复吗?答案是否定的,原因是:如果是在已经开发新需求的基础上进行修复bug,那么新需求还没开发好,更没有测试,怎么立刻(或最可能快的)上线?!再次如果新功能的开发和bug修复的代码都涉及到同一段代码冲突了怎么办 。很显然不能在当前开发的代码基础上进行bug修复工作完美的解决方案是:在当时完成的那个版本中进行bug fix,这样带来的好处是:
bug修复好之后可立即上线,不会因为新需求还没有完成或测试而延迟上线时间
bug修复是在原来上线的那个版本进行修复的,引起新bug的风险小,如果是在新需求的基础上修复bug, 那么新功能可能会带来新的bug
7.1 创建分支
1.源路径
2.分支路径
3.备注
4.版本
更新一下,创建成功
在分支中添加文件
7.2 合并分支
选择合并源
合并完成
提交分支,查看日志