TortoiseSVN -------版本控制器subversion

1.官网下载,并下载语言包。
懒得找官网的同学可以直接下载我的百度网盘链接:
链接:https://pan.baidu.com/s/1Ld31gwPbTS0FAHNoFJDK2w
提取码:1024

安装完不用找SVN在哪里,你随便右键一个文件就能看见TortoiseSVN


2.注意:先连公司的VPN(进入公司私有网段),再输入URL进入SVN代码仓库。否则可能一直转圈,因为在公网上找不到这样的IP地址。


3.登录SVN账号密码就是公司之前给的每个人的账号密码


1.SVN中三大分支

trunk主版本:最新的正常运行的主版本,用来发版。
branches分支:做一个长达2个月的大功能时需要另开分支。branch1、branch2、branch3…是不同的团队需要同步并行开发不同的大模块功能。branch做完要及时与trunk进行Merge,新开发的功能及时并入trunk。所以,branch是尽量不要发版的。
不同客户需求版本的分支,或者正在并行开发的不同版本。产品与项目分离!!!
tag标记:作为快照,记录重要的、里程碑式的发行版本,如大版本号

(一)有关SVN的简要介绍
svn是代码版本控制用的,除了记录版本可以起到版本回退的作用外,对于一个产品的代码,要分为trunk、branches、tags三大分支。trunk为主干代码,随时发版用;branches为分支代码,可用于单独开发一个新功能(但周期比较长,trunk又要随时发版,这时就可以用branches,避免做了一半与他人冲突);tags里保存各个标志性的版本,一般是存放有重大改进的版本。注意,唯独tags里的内容不要修改,只作为一个快照,所以要考虑好了再传tags,而trunk和各个branch里的代码可以随时改动。


具体操作:
1.新建初始版本:
刚开始trunk为空,tag为空,branches里新建branch1_A,在A版本开发完成后,加入到trunk和tag里,为1.0版本/A版本。
2.更多客户提出新需求:
此时来了B客户,又提了某某需求,此时需要在branches里新建branch2_B,进行维护开发,全部完成后,将branch2_B内容加入到tag里,并覆盖trunk中内容。C客户提出某需求,在branches中新建branch3_C。开发维护过程中只在branch3_C中进行。完成后,加入tag中,并覆盖trunk中内容。
3.老客户发现bug:
若A客户发现一个bug,在branches中新建branch4_fixA。完成后,添加到tag里,并覆盖trunk。

软件开发理念只维护一个版本,不要针对每一个用户单独维护一个版本。
例如:
①要给人家统一的trunk里的isealmaker,而不是isealmaker_中信。
②A客户要求图片亮度为5,第一次开发的时候写死了是5。B客户要求图片亮度是10,这个时候应该怎么维护?不可以说单独开一个B版本,然后简单的把5改成10。而是应该复杂地加上配置文件,让图片亮度变成可选项,给B的还是最新版本,给所有用户的都是唯一的最新版本,而不是针对该客户的一个分支,这样维护成本最小,只维护一个版本。
同时,销售可以对A客户说,软件是20万元,1年免费更新。可以交5万元提供10年更新。这对销售和客户来说看起来是一个大承诺,但对于软件工程师来说,对A保持更新并不需要额外的工作量。因为对所有客户都只提供一个最新的trunk版本。


2.svn移动多个文件夹到新创建的trunk里

①check out 整个大文件夹
②在本地,建立名为trunk的空文件夹
③在本地,将其他文件拖入trunk里。整个大文件夹下就只有trunk了
④commit提交大文件夹。文件变动选择全部,包括“删除”和“无版本控制”的所有文件。写一下日志信息。

如此,就在一个版本内完成了创立trunk和将其他多个文件拖入trunk的操作。

.svn文件夹就是版本控制文件。检出到本地,在含有.svn文件夹的同级及下级目录内操作后再提交,效果等同于在云端操作。区别是,云端操作一步就要记录一次。而本地无论操作多少步提交时只算一次版本。注意.svn要是最新版本才能提交,否则报错已过时。


3.图标9个:常规、修改、冲突、增加、已删除、无版本控制、只读、锁定、忽略

①绿色对勾:未改动(对比下载下来的那个版本而言)
②红色感叹号:有改动(对比下载下来的那个版本而言)
③黄色三角感叹号:冲突
④蓝色加号:新增
⑤红色叉号:删除
⑥蓝色问号:无版本控制
⑦灰色对勾:只读
⑧🔒:锁定
⑨灰色圆圈横杠:忽略


4.SVN切换账号:

在setting里把当前登录账号的信息clear掉,再操作会要求输入账号密码,这时输入新的账号信息。


5.对于冲突版本,进行Merge。

1.由于版本号过老导致的冲突问题:

.svn的版本太老了。要偷天换日,进行覆盖,把欲上传的代码的.svn文件夹替换为最新版本号的才行

2.相邻版本号冲突

实测WinMerge比SVN的TortoiseMerge好用

WinMerge
在这里插入图片描述

②SVN的TortoiseMerge

步骤:先对下载下来的文件夹/文件 右键,在TortoiseSVN选项里找到Merge合并

SVN的Merge有2-3种类型,我的版本只有2种,讲讲区别
Merge a range of revisons
合并某一个版本到我本地的版本里,可以手动修改冲突文件
冲突时有6种选项
§ postpone 暂时推后处理,我可能要和那个和我冲突的家伙商量一番
(df) diff-full 把所有的修改列出来,比比看
(e) edit 直接编辑冲突的文件
(mc) mine-conflict 如果你很有自信可以只用你的修改,把别人的修改干掉
(tc) theirs-conflict 底气不足,还是用别人修改的吧
(s) show all options 显示其他可用的命令

Merge two different trees
合并两个不同的版本,from 被覆盖的版本 to 覆盖别人的版本。这里产生冲突会直接无脑用to的版本覆盖from的版本。


7.Hei马教程:https://www.bilibili.com/video/BV1Zb4y117Yu?p=8&share_source=copy_web

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员爱德华

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

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

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

打赏作者

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

抵扣说明:

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

余额充值