版本控制在友军那里都是放在整个培训的最后阶段才开始讲的,但我们打算放到SE阶段。与其匆匆在项目实战阶段弄个半生不熟,然后进入实际工作中接受他人对你的怀疑,不如……早死早超生~~~。

可是,我们毕竟现在才刚学了Java一个月,代码都写的不溜呢,甚至都不知道目前掌握的知识能做点撒实际有用的工作,怎么就来个版本控制?版本控制是撒?

抄一段百科的版本控制解释:版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

看到没,版本控制是一种思想,但是程序猿不跟你讲思想,跟你讲实实在在的东西,所以,实现这个思想的一定是个实实在在的工具。在最课程的整个学习过程中,商业项目实战阶段代码的版本控制工具,我们使用SVN。而,个人工具代码集,我们要求使用git,放到github中。

为什么要现在就开始体验版本控制呢?因为我曾经询问过很多学员,大家对于毕业后软件公司的真实开发流程很茫然。而最课程想要带你做的,就是提前适应真实的开发,让学员从尽可能早的时刻,就参与到需求管理、版本控制、同行review、解决代码冲突、移行、测试、发布的整个过程。

我们在培训班学习,重点绝不应该仅仅是编码知识(那还不如去自学看视频),而应该是如何使用学到的知识应用到真实的开发中。

来提前感知下,整个开发流程大概是个什么样子的吧

软件开发中的精简并行过程(SPP)

以上整个SPP过程包括:6大阶段、12个过程域、28个规程、31个文档模板。你有没有准备好到我们最课程来感知一下呢?

不管怎么样,让我们先首先学习这整个过程中最重要也是最基础的一环:版本控制吧。

1. 什么是版本控制

上文已经简单介绍过了,现在我们用白话来再介绍一下它有什么用:

首先,能将代码提交到服务器,这样本机即使被炸掉了,或者你突然离职消失了,只要服务器没被老板娘砸掉(什么,有这种事情?是的,回头给你们讲讲我一个客户的故事),公司的代码就都还在;

其次,能将代码回退到以前的任何一次提交上。这是什么意思呢?比如,你一个月前写了一个功能:让APP的背景随手机壳颜色的变化而变化,但是一个礼拜前你按照产品经理的要求把功能修改为:让APP的背景随我心情的变化而变化。但是,怎么又一个但是?但是就是这么任性,但是这在实际的开发中就是这么容易出现。但是现在产品经理跑来告诉你:我不想要你上周刚实现的功能了,你把功能回退到一个月前的那个背景随手机壳颜色变化而变化的功能吧。此刻,你心中的心情应该是这样的:

要知道,代码在本机可是已经覆盖了,这个时候,版本控制管理工具就可以发挥作用了,你可以将代码回退到历史上任何一个时刻。

这里来个小插曲,要想不被产品经理欺负,可以尝试准备如下工具:

最后,版本控制的另一个重要功能是,任何稍微大型点的软件,都不可能是一个人完成的,所以,我们需要一个工具将团队成员的代码合并到一起,看上去像是一个人写的一样。所以,代码的提交和合并也是我们真实开发的日常。

好了,暂时对于初学者来说,就讲到这吧。目前够用了。

2. SVN介绍

SVN就是那个实现版本控制思想的工具。废话不多说,直接给出软件的下载地址:https://www.visualsvn.com/

3. Svn服务器端安装

下载回来大概长这样

双击安装

如上选择,next

选择标准安装

注意哦,默认是不需要https的,如果有同学手贱想尝试https,也是可以的。但我墙裂建议你不选择https,因为……在局域网中,没撒特别的意义。而且,在整个学习的过程中,还要求其他同学连接到你的源码服务器上,选择了https的话,有些同学的电脑可能会连不上你的电脑。

安装完毕在系统服务里有svn的服务,如下:

服务器端在公司里,是真的安装在一台服务器上的。在我们的学习过程中,那就跟客户端一样安装在你自己的学习机上就行了。

4. Svn客户端安装

客户端大致长如下这样

我们一路next下去就行,没什么特别需要注意的地方。

5. 配置svn server

打开服务器管理界面,添加用户,按提示来,添加上你自己的用户名,比如:baobao

仓库有了,就要给这个仓库分配权限,因为,你可不想让任何人都接触到代码。来吧,给你刚创建的用户添加代码的读写权限吧:

完毕。

6. 访问svn

访问svn其实就跟访问网站一样,也是有一个地址的,但是地址怎么得到呢?看下图

然后,在本地任意文件夹中点右键

粘贴刚才的地址,回车:

你就可以看到下面的界面了

这里默认已经创建了3个目录,每个目录是什么时候,我们会在项目管理的时候讲到,这里,我们只需要记住,我们所有的代码都放到trunk中就行了。

7. Elicpse插件安装

那接下来要怎么把代码放到服务器上呢?一种方式是直接拖动文件到上面的窗口中去,但是我们平时开发是在IDE中的(Ps:目前是eclipse,未来是idea)。那能不能直接从eclipse中提交代码到服务器呢?

当然是可以的。

但是,要完成这个功能,我们就需要给eclipse装插件。这个插件叫subversive。下载地址在:

http://www.eclipse.org/subversive/

http://www.eclipse.org/subversive/previous-releases.php

那怎么安装呢?首先是解压,然后把下面两个目录复制到eclipse对应的目录中去就可以了。

然后,记得重启elicpse。

8. SUBVERSIVE CONNECTOR 安装

但是,事情并不像我们想象的那么简单。要说怎么java程序员这么苦逼呢。当我们以为可以使用svn的时候,我们还需要一个connector,下载地址在:

https://polarion.plm.automation.siemens.com/products/svn/subversive?utm_source=eclipse.org&utm_medium=link&utm_campaign=subversive

由于我们的subversive是3.0,故下载这个

同样,安装也是执行目录copy

重启eclipse,然后检查下:

如果像上图一样,该有的都有了,那么我们的安装就成功了。

9. 代码提交

首先,像下图那样进行选择

然后,在该页面new一个仓储,输入svn地址,得到:

在trunk下创建一个文件夹,

Ps1,这个文件夹最好和咱们在eclipse中创建的项目名一致);

Ps2,我示例中的项目叫:parent;

回到项目视图,在项目上share project

接着

注意路径选择,路径的命名首先要定位到trunk下,然后再加上项目的名

接下来,是提交代码。在项目名上面,右键->team->commit,出现如下界面

首先,让我们写上注释。注意,注释写的越详细越好,把你这次提交完成了什么功能都写上,免得我们将来查看历史的时候,不知道本次提交是干什么用的。

其次,我们是提交全部文件吗?显然也不是,除了代码文件外,一些配置文件或者附属文件我们不应该提交上来。

但是,每次去提交的时候,选择提交的文件太麻烦了,那有没有一种一次性批量忽略的办法呢?当然是有的,如下图:

要忽略这几个后缀:.settings,.project,.classpath

提交后,在eclipse的项目上,会有受控标识,类似如下:

10. 查看历史

在项目上右键->team->show history,看看会出现什么?

好了,以上是我们为了完成第一次大作业所要储备的版本控制的知识。更多的功能,等我们慢慢后期挖掘中。

华丽分割线

===========================================================

1:最课程JavaEE+互联网分布式新技术开班进行中,来http://www.zuikc.com来报名吧;

2:更多技术文章和开班信息请加入,QQ群:

3:本文所涉及要下载的软件可以进群向老师索取;

4:SVN的教学视频可以进群向老师索取;

最课程阶段大作业之01:使用SVN实现版本控制相关推荐

  1. 最课程阶段大作业06:U度节能平台控制系统

    除了互联网项目,当今社会还有一个概念非常流行,那就是:物联网.什么是物联网?物联网是通过传感设备,按约定的协议,把任意物品与互联网相连接,进行信息交换和通信,以实现智能化识别.定位.跟踪.监控和管理的 ...

  2. 最课程阶段大作业05:污水处理系统以及百度地图

    吃着火锅唱着歌,我们的课程已经进行了两个月了,现在,我们终于有能力进行真正的软件开发了. 往期学完课程面试归来的同学,都知道有一句话:"面试造航母,实际工作拧螺丝钉". 很庆幸的是 ...

  3. 华南理工大学计算机操作系统课程设计大作业银行家死锁避免算法模拟,2016春操作系统大作业银行家死锁避免算法模拟.doc...

    文档介绍: 2016春操作系统大作业银行家死锁避免算法模拟20160501华南理工大学"计算机操作系统"课程设计大作业计算机科学与技术专业:春2015班级:号:2015047420 ...

  4. 北京交通大学Python课程设计大作业(四)——典籍词频统计

    北京交通大学Python课程设计大作业(四)--典籍词频统计 文章目录 北京交通大学Python课程设计大作业(四)--典籍词频统计 一.词频统计任务介绍 二.典籍词频统计python源代码如下 三. ...

  5. android大作业闹钟的功能,定时闹钟课程设计大作业.doc

    定时闹钟课程设计大作业 微型计算机控制 技术大作业 设计题目: 定时闹钟课程设计 院 系:计算机科学与信息工程学院 学生姓名: 曹紫莹 学 号: 201103010036 专业班级: 计算机科学与技术 ...

  6. Java课程设计大作业学生管理系统的设计与开发(Java+Mysql)

    文章目录 项目目标 项目截图展示 项目Java源程序 项目数据库文件信息 项目结构图设计 系统功能结构图: 软件架构设计 项目目标     这篇文章是Java语言得课程设计大作业记录.     项目由 ...

  7. 打怪游戏Java课程设计_java 课程设计大作业 写的一个RPG游戏(代码+文档)

    [实例简介] java 课程设计大作业 写的一个RPG游戏(代码+文档) java 课程设计大作业 写的一个RPG游戏(代码+文档) [实例截图] [核心代码] Rebellion-master ├─ ...

  8. Android课程设计大作业-音乐播放器

    Android课程设计大作业-音乐播放器 一.**主要实现界面效果** 1)登录界面 2)音乐列表界面 3)音乐播放界面 二.**系统设计** 1)使用Service播放音乐 2) 前台界面(Acti ...

  9. 合肥学院C语言大作业,C语言实践课程综合大作业..doc

    C语言实践课程综合大作业. 昆明理工大学 <程序设计基础>课程 综合设计实践教学课题报告 课程名称: C语言程序设计综合大作业 课题名称:数学计算工具程序设计 组长:学号 20131040 ...

最新文章

  1. Gartner:2019十大战略技术趋势
  2. [转]Entity Framework走马观花之把握全局
  3. stm32 adc过采样_产生ADC误差的外部原因有哪些?
  4. 从零开发一个laravel项目的增删改查、详情
  5. Java中的enum详细解析------Java enum 枚举还可以这么用
  6. NBA球星杜兰特之前投资Coinbse目前已获利达61.5倍
  7. 计算机网络 - 物理层
  8. go url 参数编码和解码
  9. bzoj4517[Sdoi2016]排列计数(组合数,错排)
  10. 三农数据(1996-2020)八:农林牧渔业总产值、增加值构成及增加值率、中间消耗
  11. Self-Supervised Vision Transformers with DINO-代码研读
  12. 如何利用COOC软件绘制动态交互图?
  13. div盒模型宽高计算
  14. .netcore基础知识(一)
  15. 输入两个正整数m和n,求出[m,n]区间的所有素数。
  16. sql compact 转mysql_如何将数据导入到 SQL Server Compact Edition 数据库中(四)
  17. MinGW介绍与使用
  18. VCS+Verdi 安装及破解过程(Ubuntu)【1】
  19. VS Code 下载和安装教程
  20. openssh linux 下载,OpenSSH 下载与配置

热门文章

  1. mysql通用mapper_SpringBoot集成tk.mapper通用mapper,针对特殊业务也可写xml文件sql
  2. 透明背景html,HTML透明背景
  3. mysql怎么用sb文件_初识mysql数据库
  4. datagrid底部显示水平滚动_滚动穿透问题探索
  5. clickhouse的kafka表引擎 +接口表
  6. 刚刚,Facebook开源了星际争霸AI代码
  7. 李飞飞夫妇打造了两件秘密武器,让机器人快速学习人类技能
  8. 企业生产环境数据库备份锁表问题
  9. 《Java8实战》-第五章读书笔记(使用流Stream-02)
  10. SQL系列(五)—— 排序(order by)