版本控制

软件开发工具(第12章: CVS的安装及使用)

微笑、不失礼 提交于 2019-12-01 07:05:29
一、CVS介绍 并发版本系统(Concurrent Versions System——CVS)是一个常用 的代码版本控制系统。 使用CVS可以对代码进行集中管理,记录代码所有的更改历史,提供 协作开发的功能并支持多人同时修改代码文件。 利用版本控制软件的好处(记忆) 随时将程序恢复到以前某一时间点。 实现程序的互斥性修改。能够实现某一程序在同一时间只能由一个开发人员修改。 对程序修改进行有效的管理。可以将用户分为管理员和程序员两种角色,只有管 理员可以将程序冻结(Freeze)和解冻(Unfreeze),被冻结的程序是不允许 修改的。 将开发环境与测试环境、运行环境进行有效的隔离。 评估软件开发人员编写的程序质量,控制软件开发的进度。 管理文档。使用者可以在版本控制中建立专门的文件夹,用于存放软件开发过程 中生成的各种文档。 二、常用版本控制软件 有哪些常用的版本控制软件(重点、记忆) Rational ClearCase(两控两管): ClearCase涵盖的范围包括版本控制、建立管理、工作空间管理和过程 控制;ClearCase支持现有的绝大多数操作系统。ClearCase安装、配置、使 用相对较复杂,需要进行团队培训。 Visual SourceSafe(VSS):是一种很好的入门级的配置管理工具。易 学易用,采用标准的Windows操作界面。VSS提供共享、分支和合并功能

IDEA的安装和使用

微笑、不失礼 提交于 2019-12-01 06:21:09
IDEA的特色功能 IDEA所提倡的是智能编码,是减少程序员的工作,IDEA的特色功能有以下22点 [1] : ●  智能的选取 在很多时候我们要选取某个方法,或某个循环或想一步一步从一个变量到整个类慢慢扩充着选取, IDEA就提供这种基于语法的选择,在默认设置中Ctrl+W,可以实现选取范围的不断扩充,这种方式在重构的时候尤其显得方便。 ●  丰富的导航模式 IDEA提供了丰富的导航查看模式,例如Ctrl+E显示最近打开过的文件,Ctrl+N显示你希望显示的类名查找框(该框同样有智能补充功能,当你输入字母后IDEA将显示所有候选类名)。 在最基本的project视图中,你还可以选择多种的视图方式。 ●  历史记录功能 不用通过 版本管理 服务器,单纯的IDEA就可以查看任何工程中文件的历史记录,在版本恢复时你可以很容易的将其恢复。 ●  JUnit 的完美支持 ●  对重构的优越支持 IDEA是所有IDE中最早支持重构的,其优秀的重构能力一直是其主要卖点之一。 ●  编码辅助 Java规范中提倡的toString()、hashCode()、equals()以及所有的get/set方法,你可以不用进行任何的输入就可以实现代码的自动生成,从而把你从无聊的基本方法编码中解放出来。 ●  灵活的排版功能 基本所有的IDE都有重 排版 功能,但仅有IDEA的是人性的

idea开发工具

Deadly 提交于 2019-12-01 06:07:59
IDEA 简介 IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Python等少数语言。 优点 最突出的功能自然是调试(Debug),可以对Java代码,JavaScript,JQuery,Ajax等技术进行调试。 比如查看Map类型的对象,如果实现类采用的是哈希映射,则会自动过滤空的Entry实例。 其次,需要动态Evaluate一个表达式的值,比如我得到了一个类的实例,但是并不知晓它的API,可以通过Code Completion点出它所支持的方法。 最后,在多线程调试的情况下,Log on console的功能可以帮你检查多线程执行的情况。 特色功能 IDEA所提倡的是智能编码,是减少程序员的工作,IDEA的特色功能有以下22点 : ● 智能的选取 在很多时候我们要选取某个方法

SVN版本控制说明

徘徊边缘 提交于 2019-12-01 05:32:13
目的 多个版本中并行开发,提高开发效率; 保证各个版本和各个环境(开发、测试、主干)的独立,避免相互影响; 通过分支与主干的合并,这样主干永远是最新、最高版本,并且都在后面的测试中,保证了质量; 用分支进行bug修改,而主干上进行新功能的开发。分支上的bug修改完合并到主干上; SVN目录结构 Trunk(开发库) : 主干目录,负责新功能的开发; 此目录下的文件为基准文件,放置稳定代码的主要环境; 开发人员日常开发的工作区,由开发者所控制; Branches(受控库) : 测试版本代码存放的地方,需要开发组长提交测试申请修改; 用于开发的分支目录,修正当前发布版本的bug,与此同时主干上的开发正常进行,两边互不干扰; 当一个branch完成了,并且认为它足够稳定的时候,它必须合并回trunk; Tags(产品库) : 存放基线库、发布版,是测试通过版本存放的地方; 基线,就是给版本建立一个映像(或着叫快照),并不占用服务器物理磁盘; 这个文件夹下的内容通常只有配置管理员可以修改,其他人只读; 分支 分支是给源项目创建副本,让每个工作组在各自的副本上进行开发,最后再将各个工作组的副本合并到源项目中。在此,各个副本被称作分支(branches),源项目被称为主干(trunk); 分支不是复制版本内容,而是做一个内部的引用,对服务器也没有空间上的开销; 分支定义规则 project

git学习

拟墨画扇 提交于 2019-12-01 02:41:28
原文链接: https://www.cnblogs.com/mituxiaoshutong/p/9175649.html Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。 Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢? 事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码! 你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。 不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满

Spring Cloud 版本控制

我与影子孤独终老i 提交于 2019-12-01 02:24:45
### 正常版本 ``` org.springframework.boot spring-boot-starter-parent 2.1.7.RELEASE ``` ### SpringCloud 版本 Release Trains(发布列车) > 为了避免与子项目混淆,发布火车有名称,而没有版本。这些名字是按字母顺序排列的(所以你可以按时间顺序排列),还有伦敦地铁站的名字(“Angel”是第一个版本,“Brixton”是第二个版本)。当单个项目的点发布累积到一个临界量时,或者如果其中有一个临界bug需要对所有人可用,那么发布序列将推出名称以“service release”结尾的“服务发布”。,其中“X”是一个数字。 - Hoxton(第8代) - Greenwich(第7代) - Finchley(第6代) - Edgware(第5代) - Dalston(第一4) - Cxxx(第3代) - Bxxx(第2代) - Axxx(第1代) > Greenwich.SR2,SR2表示Service Release bug修复,2:第几次 > Greenwich.Release Greenwich版本的第一个正式版 > Greenwich.SR1 Greenwich版本的第一个bug修复版 #### 发布顺序 > Greenwich.Release ---> Greenwich

《Git权威指南》读书笔记 第五章 Git暂存区

假如想象 提交于 2019-11-30 22:02:55
5.1 修改不能直接提交 首先修改welcome.txt文件,在这个文件后面追加一行: echo "Nice to meet you." >> welcome.txt 使用git diff命令查看修改后的文件与 暂存区(并不是版本库,后面会有相关讨论) 中的文件的差异: diff --git a/welcome.txt b/welcome.txt index a8f9fd8..b0e5c6e 100644 --- a/welcome.txt +++ b/welcome.txt @@ -1 +1,2 @@ Hello +Nice to meet you. 差异的输出格式: 以---开头的文件表示源文件; 以+++开头的文件表示目标文件; @@ 中间的数字表示行号和行数,-1表示源文件第一行开始共一行,+1,2表示目标文件从第一行开始共2行; 文件内容中以空格开头的表示源文件和目标文件共同拥有的行,-开头的行表示只在源文件中出现的行,+开头的行表示只在目标文件出现的行。 此时使用git commit命令并不会提交修改,反而会报错: git commit -m "Append a nice line." On branch master Changes not staged for commit: modified: welcome.txt no changes added to

关于 Subversion 协议动态代理服务器

[亡魂溺海] 提交于 2019-11-30 20:53:48
##前言 在2015年下半年的时候,笔者的工作主要转向 GIT@OSC 分布式后端服务器的实现,GIT@OSC 分布式对于不同的接入有有不同的解决方案,HTTP 访问使用 nginx 模块实现动态代理,对于 ssh ,则是使用的端口转发。对于 svn, 早先是不使用分布式解决方案,也就是使用旧式的 NFS 方案,对于分布式来说,这非常的不彻底,NFS 依然是系统的一个瓶颈,并且 svn 服务器的奔溃影响的是所有的用户,某日开会,老大参与后,就问我,能不能实现 svn 协议的代理,我想了想,于是就答应下来,后来就有了 svnsrv 项目,2016 年春节前,svnsrv 作为 GIT@OSC svn 分布式解决方案率先上线,经过多次改进,svnsrv 逐渐稳定,目前已经稳定运行至今,春节期间遇到的访问故障经过分析均不是 svnsrv 的问题,而是后端 sserver 服务器的问题。 OSChina 创立在开源分享的精神之上,我们也将回馈社区。将 svnsrv 剥离核心路由库开源出来,项目地址: https://git.oschina.net/oschina/svnsrv ##svnsrv 概览 svnsrv 是基于C++11 开发的 svn 协议动态代理服务器软件,原本运行在 linux 平台,网络框架使用了 Boost.Asio 库,全异步模式,在上线初期

第三十章 编程工具

核能气质少年 提交于 2019-11-30 16:20:41
设计工具 目前的设计工具主要就是那些能创建设计图表的图形化工具。 源代码工具 编辑 集成开发环境(IDE); 在编辑器中进行编译和错误检测; 与源代码控制工具、build工具、测试工具、除错工具集成; 显示程序的扼要视图或大纲视图; 跳转到类的定义、子程序定义、变量定义处; 跳转到使用某个类、子程序、变量的全部位置; 针对特定语言的编排格式; 针对正在编辑的语言的交互式帮助; 花括号匹配; 常用语言的结构模板; 智能缩进; 自动化的代码转换或重构; 可以用熟悉的编程语言进行宏编程; 列出查找的字符串,使常用的字符串无需重新键入; 在查找和替换时可用正则表达式; 在一组文件中进行查找和替换; 同时编辑多个文件; 双列式的diff对比; 多级编辑动作撤销; 针对多个文件的字符串查找和替换; diff工具; merge工具; 源代码美化器; 生成接口文档的工具; 模板; 交叉引用工具; 类的继承体系生成器。 分析代码质量 吹毛求疵的语法/语义检查器; 尺度报告器。 重构源代码 重构器; 结构改组工具; 代码翻译器。 版本控制 源代码控制; 依赖关系控制,类似UNIX下提供的make工具; 项目文档的版本管理; 将项目的工件关联到一起,这样当需求发生变更时,你能找出收影响的代码和test cases。 可执行码工具 产生目标码 编译器与链接器; Build 工具; 程序库; 容器类;