最课程阶段大作业之01:使用SVN实现版本控制
版本控制在友军那里都是放在整个培训的最后阶段才开始讲的,但我们打算放到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,下载地址在:
由于我们的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实现版本控制的更多相关文章
- 最课程阶段大作业06:U度节能平台控制系统
除了互联网项目,当今社会还有一个概念非常流行,那就是:物联网.什么是物联网?物联网是通过传感设备,按约定的协议,把任意物品与互联网相连接,进行信息交换和通信,以实现智能化识别.定位.跟踪.监控和管理的 ...
- DIP大作业---图像分割
数字图像处理课程的大作业,要求如下: 图像分割就是把图像分成若干个特定的.具有独特性质的区域并提出感兴趣目标的技术和过程.它是由图像处理到图像分析的关键步骤.现有的图像分割方法主要分以下几类:基于阈值 ...
- 软件工程大作业(学生会管理系统)Web端个人总结报告
软件工程大作业(学生会管理系统)Web端个人总结报告 一.小组信息 1.所在小组:第二组 2.小组选题:学生会管理系统 3.项目源代码链接: Web端源代码:code 小程序端源代码:code APP ...
- 与左侧的 圆括号“(”(位于“e:\大二上课程课件、作业和答案\数据结构\chapter4\sqstack\sqstack\mysqstack.h(23)”)匹配之前遇到文件结束
错误原因是“某对圆括号只打了左括号而没有右括号”,debug方法是:直接根据报错提示:“与左侧的 圆括号“(”(位于“e:\大二上课程课件.作业和答案\数据结构\chapter4\sqstack\sq ...
- 模式识别课程大作业 Shopee 商品图像检索
大作业项目简介 在如今的信息科技时代, 带有拍照功能的移动设备如手机.相机等得到了极大的普及和流行, 各种各样的图片和视频可以随时随地获得, 并借助互联网快速传播, 这种趋势使得网络上的数字图片和视频 ...
- 2016福州大学软件工程Beta阶段团队作业成绩汇总
1.评分规则 本次Beta阶段团队作业评分方法如下: 团队得分=[[7次scrum过程评分+(小组互评得分+教师评分)/2]/2],其中过程.小组.教师各30分 说明:由于没有规定提交团队贡献比,因此 ...
- 哈工大CSAPP大作业
第1章 概述 1.1 Hello简介 hello的源码hello.c文件,要生成可执行文件,首先要进行预处理,其次要进行编译生成汇编代码,接着进行汇编处理生成目标文件,目标文件通过链接器形成一个可执行 ...
- 哈工大 计算机系统 大作业 程序人生-Hello’s P2P
计算机系统 大作业 题 目 程序人生-Hello's P2P 专 业 计算机 学 号 班 级 学 生 指 导 教 师 计算机科学与技术学院 2021年6月 摘 要 本文主要通过分析hello这个程序的 ...
- 期末Java Web大作业----简易的学生管理系统
学生信息管理系统(大作业) 2018-12-21:此文章已在我的网站更新,添加视图介绍等信息,源码请移步下载https://www.jeson.xin/javaweb-sims.html PS:首先不 ...
随机推荐
- 简单对比 Libevent、libev、libuv
Libevent.libev.libuv三个网络库,都是c语言实现的异步事件库Asynchronousevent library). 异步事件库本质上是提供异步事件通知(Asynchronous Ev ...
- Linux查看文件命令
linux查看日志文件内容命令有 cat 由第一行开始显示文件内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写 nl 显示的时候,顺道输出行号! more 一页一页的显示文件内 ...
- raindi python魔法函数(一)之__repr__与__str__
__repr__和__str__都是python中的特殊方法,都是用来输出实例对象的,如果没有定义这两个方法在打印的时候只会输出实例所在的内存地址 这种方式的输出没有可读性,并不能直观的体现实例.py ...
- Mac下brew安装与配置mysql
一.打开mac控制台 $ brew install mysql 二.启动mysql服务 $ mysql.server start 三.初始化mysql配置 1 rainMacBook-Pro:~ co ...
- HTTP2.0 简明笔记
前言 RFC2616发布以来,一直是互联网发展的基石.HTTP协议也成为了可以在任何领域使用的核心协议,基于这个协议人们设计和部署了越来越多的应用.HTTP的简单本质是其快速发展的关键,但随着越来越多 ...
- PHP中嵌套函数被调用时出现报错的问题
对于初入门的PHP新手来说,在学习关于PHP函数嵌套的知识点时可能会有一定的难度.比如有的朋友在练习PHP函数嵌套相关问题时,会遇到调用内部函数时就会出现报错的情况等. 那么本篇文章就为大家详细得分析 ...
- python 全栈开发,Day55(jQuery的位置信息,JS的事件流的概念(重点),事件对象,jQuery的事件绑定和解绑,事件委托(事件代理))
一.jQuery的位置信息 jQuery的位置信息跟JS的client系列.offset系列.scroll系列封装好的一些简便api. 一.宽度和高度 获取宽度 .width() 描述:为匹配的元素集 ...
- .net的架构模式
一:ADO.NET实现三层架构 不用三层的普通的查询写法: string sql = string.Format("select * from Studnet where StuName l ...
- 去掉m3u8的片头和片尾
# pip3 install -i https://mirrors.aliyun.com/pypi/simple/ m3u8 # pip3 install -i https://mirrors.ali ...
- [CQOI2017]小Q的棋盘
题解: 好像有题解说可以贪心.. 显然这是一棵树,考虑树形dp 维护f[i][j]从点i往下走j再回来经过的最多点,g[i][j]从点i往下走j不用回来经过的最多点 转移方程还是挺显然的,枚举的时候像 ...