教程说明
- 本系列教程目录大纲:《SVN系列教程-目录大纲》
《SVN系列教程-第四章-TortoiseSVN使用大全》
1.1 TortoiseSVN简介
TortoiseSVN是一款基于windows系统的svn客户端工具,TortoiseSVN可以很好的帮助我们操作SVN仓库,例如检出、添加、更新、提交、删除、撤销、日志记录、回滚版本、解决冲突、文件忽略等功能;
安装好TortoiseSVN之后,查看右键菜单:
选择Repo-browser
,输入仓库的地址:
输入用户名和密码:
在线浏览仓库
1.2 TortoiseSVN的使用
1.2.1 检出
首先将test_crm的仓库权限设置为xiaohui、xiaolan用户可读/写;
1)创建两个工作空间目录,xiaohui、xiaolan:
2)在空白地方右击鼠标,选择SVN Checkout...
进行项目检出:
3)选择地址进行检出
4)输入xiaohui的用户名和密码
检出成功:
绿色勾图标:当前工作副本和svn服务器完全一致;
使用xiaolan用户重新检出一份到xiaolan目录:
首先需要清除之前保存的用户信息:
清除用户信息:
重复刚刚xiaohui检出的步骤,如图:
1.2.2 添加
添加成功后:
蓝色小加号:刚纳入到版本控制中,还未提交
1.2.2 提交
填写日志信息:
提交完成后,文件左下角出现绿色勾勾图标,代表与服务器端的版本一模一样(是最新版本):
1.2.2 更新
来到xiaolan工作空间,空白处右击SVN Update
:
1.2.2 删除
删除之前查看VisualSVN:
删除:
空白处右击,选择提交:
提交后再次查看VisualSVN,发现hello.txt没有了;
1.2.3 回退
在需要回退的文件上面右击—>TortoiseSVN
—>Update to revision...
查看日志信息:
选择指定版本进行回退:
1.2.4 撤销
删除config.txt文件
在工作副本空白处右击—>TortoiseSVN
—>Revert...
1.3 TortoiseSVN演示冲突
1.3.1 演示冲突
模拟冲突:
xiaohui | xiaolan |
---|---|
创建abc.txt 内容为: 111 222 333 |
|
执行add | |
执行commit | |
执行update | |
修改内容为: 111aaa 222 333 |
|
执行commit | |
修改内容为: 111bbb 222 333 |
|
执行update(冲突) |
查看产生冲突的文件夹:
黄色感叹号:提交的文件与svn服务器冲突时的状态;
1.3.2 解决冲突
1)选择冲突的文件,右击—>TortoiseSVN
—>Edit conflicts
冲突界面:
解决完毕冲突后点击Save,冲突的文件全部清空了:
红色感叹号:工作副本有修改但未提交;
1.4 分支
1.4.1 分支概念
分支在SVN中其实就是一个文件夹(仓库);到目前为止,我们所有的项目文件都是统一放在SVN仓库的根目录下的。在SVN中一个仓库可以管理多个项目或者说多个模块的。比如一个oa系统会有人事模块、会议模块、部门模块、财务模块等;再或者我们建立一个mine仓库一个external仓库,mine代表存放的是我们公司自研项目,external代表外包项目;总而言之我们可以建立多个文件夹来管理我们的项目。
我们上面的mine、external、CRM系统、OA系统就是分支,多分支的第一个好处当然就是方便管理项目了,项目结构清晰明了;
在版本控制中,分支还有另一个巨大的好处,那就是提供了版本控制的隔离;
目前为止,我们所有项目、模块都存储在一个分支(文件夹)中,我们知道,任意模块的代码提交都会产生一个版本的更新,并且这个版本属于此分支,这样一来当有某个模块需要回退到历史的某个版本时,在同一个仓库的其他模块的代码也必定会回退到这个版本的时期,原因是他们都属于一个分支(文件夹);
我们建立分支后,在指定分支中触发的版本更新是属于这个分支的,当进行版本回退时,也只是回退当前分支的代码,并不会影响其他分支的开发;
1.4.2 分支命令操作
分支真正意义上就是一个文件夹而已,这个文件夹中保存着这里面代码的版本体系,因此创建分支、删除分支等其实就是创建一个文件夹、删除一个文件夹而已;
创建分支:
- 格式:
svn copy [--username 用户名 --password 密码] [文件夹地址] [新地址] -m "创建日志"
- 示例:
svn copy --username xiaohui --password admin https://DESKTOP-DAT3C0S:8443/svn/test_crm/trunk https://DESKTOP-DAT3C0S:8443/svn/test_crm/branches/t1 -m "创建测试分支"
在test_crm项目下创建了一个t1分支(实质上就是把trunk目录下的文件复制了一分到branches目录下的t1目录)
- 通过
VisualSVN
创建分支:
1.4.3 合并分支
1)创建分支
创建两个分支:login、pay;
2)检出分支代码
模拟xiaohui用户一个人开发两个分支:
1)检出login分支的代码:
2)检出pay分支的代码:
3)编写代码提交
模拟开发多分支:
login分支 | pay分支 |
---|---|
内容:初始化登录功能,具备QQ登录功能 | |
add | |
commit; | |
内容:初始化支付功能,具备支付宝支付功能 | |
add | |
commit; | |
新增微信等功能 | |
commit; | |
新增支付宝支付功能 | |
commit; |
由于在不同的模块(分支)下开发,因此更新或者回退项目时,不会影响到其他的模块(分支);
- 查看login分支的提交日志:
- 查看pay分支的提交日志:
4)合并分支
我们前面提到过,分支其实就是一个文件夹,合并分支无非是把一个文件夹(分支)中的内容copy到其他文件夹(分支)而已;
在需要合并的文件/文件夹上右击—>TortoiesSVN
—>Branch/tag
选择要合并到的分支:
合并之后,需要在login分支提交,才会将合并的文件提交到login分支中;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/131757.html