【版本控制-TortoiseSVN】

0 TortoiseSVN图标介绍

Subversion 简称SVN

0.1 SVN软件版本管理原理

在这里插入图片描述
当我们完成一些功能的开发后,可以将改动提交到中心仓库,这时候中心仓库会产生一个只记录改动的新版本。这些版本会按照严格的时间线来存储。借助仓库这种存储结构,我们可以很容易回退到历史版本,以及查看版本之间的差异。

0.2 TortoiseSVN图标介绍

属性描述
绿√新检出的工作复本使用绿色的对勾重载,表示Subversion状态正常。
红色感叹号状态就变成了已修改,而图标重载已变成了红色感叹号。需要提交。
黄色感叹号提交的过程中出现了冲突
加号有一个文件或者目录已经被计划加入到版本控制中。

1 svn基础操作

1.1 增加(Add)

新建一个b.txt文件

  1. 右键SVN菜单执行“Add“操作提交到”变更列表中”,然后右键SVN菜单执行”SVN Commit”提交到版本库中。
  2. 右键svn菜单执行”SVN Commit”操作。(不提交到变更列表中,而是直接commit配置库中)

1.2 删除(Delete)

  1. 选择被删除文件,右键svn菜单执行”delete”操作,然后选择被删除文件的父目录,右键svn菜单执行”SVN Commit”.

1.3 改名(Rename)

  1. 选中需要重命名的文件或文件夹,然后右键“TortoiseSVN->Rename“,在弹出的对话框中输入新名称,点击”ok”按钮,并将修改文件名后的文件或文件夹通过 “SVN Commit”提交到SVN服务器上。

1.4 SVN还原(SVN Revert)

  1. 右击想要回退的文件或者文件夹,在TortoiseSVN弹出菜单中选择”Update to reversion…” 然后会弹出一个窗口
    比如说我们要回退到第10个版本只需要在Revision中填写相应的版本号,然后点击ok即可。

1.5 检查更新(Check for modifications)

  1. 此功能可以显示你所做的修改有哪些还没有提交的,此功能不光能看到对文件的修改变化,所有的变化都能看到,包括增加文件或者目录,删除文件或者目录,移动文件或者目录等,如果你点击了检查版本库,那你还可以看到版本库里的改动,既别人提交了哪些文件的改动,你还没更新到本地,如下:
    在这里插入图片描述

1.6 SVN更新(SVN Update)

更新本地代码与SVN服务器上最新的版本一致

1.7 如何解决冲突文件

为什么会产生冲突代码呢?原因很简单就是因为不同的人,同时修改了同一个文件的同一个地方,这时候,他提交了,我没有提交,我就提交不了,这个时候我们要进行先更新,然后在进行提交即可,那如果产生冲突,会生成如上3个文件。
每个冲突的文件Subversion在你的目录下放置了三个文件:如下:
在这里插入图片描述

1.  txt.mine 是冲突前自己的文件。可以看下内容如下:
      aaaasdf11222333 dderderder
2.  1.txt.r4 是冲突前本地的版本文件
     内容如下:aaaasdf11222333
3.  1.txt.r5  是别人赶在你之前提交的版本
      内容如下: b
有上面3个文件存在肯定提交不了.

<<<<<<<<.mine .....=======之间的代码是你自己的,
======......>>>>>>>.r5是别人与你冲突的代码部分
这样就不难理解为什么会产生冲突这种奇怪的东西了,因为你们修改的同一块代码,当然会产生冲突。

解决办法一 : 使用revert(回滚)操作
该操作表示用户放弃自己的更新代码,然后直接提交,这个时候你的代码就会使服务器上最新的代码,即A用户提交的新代码,你的代码不会被提交.
在这里插入图片描述
在这里插入图片描述
点击ok按钮后 可以看到其他三个文件都自动删掉了,1.txt代码变成如下代码:
66666666666aaaaaaaaaa666
也就是a用户提交的代码,我自己更新的代码需要自己动手复制进去即可提交commit。

解决办法二 :
选择文件->右键Editconficts:这种方法需要冲突双方经过协商之后将代码更改统一之后再提交。不仅解决了冲突而且还保证了代码是正确的,因为只有一方的代码被提交.
在这里插入图片描述
如上图所示,红色的部分是冲突代码:
theirs表示当前服务器端最新的代码,
Mine表示自己修改后的代码,
Merged表示合并后的代码。
点击红色后右键选择:use this text block就可以将该部分代码作为合并后的代码

1.8 SVN提交(SVN Commit)

Svn的提交是将在工作空间做的修改进行提交,包括文件内容的修改,文件或目录的添加,删除,命名,移动等操作
在这里插入图片描述

1.9 显示日志(Show log)

通过此功能可以查到谁,什么时候,对那个目录下的那些文件进行了那些操作

1.10 版本库浏览(Repo-browser)

此功能是用来浏览需要查看的资料库,在本地文件夹下点击右键,选择TortoiseSVNàRepo-browser,

2 分支操作

2.1 主干合并到分支

  1. 首先,在本地trunk中先update一下,有冲突的解决冲突,保证trunk和repository已经完全同步
  2. 然后在/branches /MyProject上右键,依次选择”TortoiseSVN” -> “Merge…
  3. 在弹出的窗口中选择第一项”Merge a range of revision”,这个类型的Merge适用于将某个分支或主线上提交的多个revision间的变化合并到另外一个分支上。
  4. 由于是要从trunk合并到branch,理所当然这里的”URL to merge from”应该填trunk的路径,”Revision range to merge”很好理解,就是你要将trunk的哪些revision所对应的变化合并到branch中
  5. 在点击Merge按钮前你可以先Test merge一把,看成功与否,以及merge的详细信息。点击Merge按钮后trunk所做的修改将同步到branch中。
  6. 至此,branch 已经完全和 trunk 同步,合并发生在本地 working copy,只要你不提交就不会影响到 repository。所以我们和合并操作后,处理好冲突(如果存在冲突)后,将代码提交到 repository。

2.2 分支合并到主干

在/trunk/MyProject上右键(注意是在主线的目录上右键),依次选择”TortoiseSVN” -> “Merge…”。
后续操作和 “分支合并到主干” 一样,其实你可以把主干也理解为一个分支 “主分支”。
因为我们把分支合并到分支一般是分支开发完毕后,所以在一般选择 all revisions ,当然你如果只想合并一部分到主干,一样可以选择 specific revisions 指定版本号合并。

// 合并到哪里就在哪个目录下点击TortoiseSVN” -> “Merge
// 合并只发生在本地working 中,还要提交一次到repository中。

2.3 分支建立

  1. truck主干版本为例,我们要以它为基础建立一个分枝。
  2. 选择新建分枝标记。
    在这里插入图片描述
  3. 在这里要输入新建分枝的位置,我们选择了braches目录作为分枝的路径,以及名字为new_truck
    在这里插入图片描述
    确认建立成功;新建成功可以在游览器中查看新建分支。

2.4 创建分支

右击已经存在的SVN项目->branch/tag,弹出框的to path输入新的分支名称,建议/branch/xxx,点击OK就创建出xxx分支.(建议创建前先svn update)

2.5 切换分支

右击已经存在的SVN项目->switch,弹出框的to path输入分支名称,上面新建了/branch/xxx分支,如果想要切换/branch/xxx分支,则输入/branch/xxx点击OK.

2.6 合并分支

右击已经存在的SVN项目->merge->merge a range of revisions->URL to merge from选择需要合并的代码分支,specific range输入框选择show log选择需要合并的版本号区间,然后一路next完成合并,如果有冲突解决完代码冲突,需要svn commit才能完成合并.

2.7 删除分支

右击已经存在的SVN项目->repo browser,弹出框的左边选择需要删除的分支右击->delete

3 概念理解

在这里插入图片描述
在这里插入图片描述

4 SVN服务器搭建和使用

4.1 下载安装SVN服务器

http://subversion.apache.org/packages.html,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Location是指VisualSVN Server的安装目录,
Repositorys是指定你的版本库目录.
Server Port指定一个端口,
Use secure connection勾山表示使用安全连接,

4.2 建立版本库

在这里插入图片描述

4.3 需要建立用户和组,并且需要分配权限

4.3.1 新建用户

在这里插入图片描述

4.3.2 新建用户组

在这里插入图片描述

4.3.3 用户组设置权限

在这里插入图片描述
选择Security选项卡,点击Add按钮,选中longen0707,然后添加进来,权限设置为Read/Write,如下图:
在这里插入图片描述

4.4 客户端SVN安装

在这里插入图片描述
checkout项目文件。
在这里插入图片描述

4.5 客户端SVN汉化

将下载之后的文件“LanguagePack_1.14.5.29465-x64-zh_CN.msi”安装
在这里插入图片描述
如果不慎没有勾选,还可以在这里设置:
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光芒Shine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值