ubuntu 下eclipse集成cvs

2024-03-11 07:48
文章标签 ubuntu eclipse 集成 cvs

本文主要是介绍ubuntu 下eclipse集成cvs,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Eclipse的内置版本支持

Eclipse本身内置了一定程度的版本支持,也就是所谓的Local History。在Eclipse中编辑的文件每次存盘都会留下记录,可以随时与历史记录比较,恢复到某一个时刻的状态。在资源视图(Resource Perspective)或者Java视图(Java Perspective)中的文件上点右键,选择Compare With,Local History,就会得到如下的画面,可以很清晰看到各个版本的区别。


图1:Eclipse中的内置版本支持:Local History。
图1:Eclipse中的内置版本支持:Local History。

如果需要,则可以通过Replace With,Local History来恢复到任一个以前的版本。当然,这样版本的历史是有限制的,可以在Eclipse的Preference中设置。在Preference�D>Workbench->Local History中,可以设置保持最多保持几天的文件,每一文件的版本数目,历史文件的大小限制。

但是,这样的版本系统只实现了最基本的版本功能,如果想把文件某一个状态标记为一个版本,加上注释(仅仅从Local History中的保存时间很难看出每一个版本的特点,也难以找到重要的关键版本),或者想把某个目录乃至整个项目版本化,Eclipse内置的Local History都是无能为力的。

好在Eclipse基于开放的思想,采用了业界标准的版本控制系统CVS,这样不仅很好地实现了版本控制的功能,对于已经熟悉CVS的开发者来说也更容易使用,更重要的是,可以为团队开发提供更加灵活和开放的选择:项目的数据可以存储在一个CVS服务器内,不同的开发者甚至可以采用不同的开发工具,只要这些工具都支持CVS。也许这时我们可以理解为什么Eclipse放弃了Visual Age Java的业已很成功的ENVY系统,这一点很好地体现了Eclipse的开放性和对其他软件的良好互操作性。





回页首


CVS

CVS是Concurrent Versions System(并发版本系统)的缩写,基于Unix体系中成熟的SCCS(Source Code Control System)和RCS(Revision Control System)开发,是一个开放源码的项目,目前已是版本控制系统的主流软件。一个很常见的使用CVS的场合,就是开放源码项目。由于开放源码项目的开发者的分布性,对于版本管理的要求更加严格,而目前大部分的开放源码项目几乎都是采用CVS来管理源代码,CVS的标准性和强大可见一斑。

CVS采用客户机/服务器体系,代码以及各种版本存储在中心服务器内,每一个个体开发者开发时都首先从服务器上获得一份自己的拷贝,在此基础上进行开发,以避免直接影响服务器上的数据。开发者可以随时把自己的新代码提交给服务器,并通过更新获得代码的最新状态,保持与其他开发者的一致。

CVS对于网络是透明的,开发者可以使用客户端软件(几乎所有的平台上都有相应的客户端软件)在任何时候,任何地点通过网络来获取最新的代码。

对于Eclipse的开发者而言,Eclipse本身内置了CVS支持,不需要使用其他客户端软件,只要建立一个CVS服务器,就可以使用这一强大的版本控制系统了。

 

1.安装CVS,在新立得包管理器里面选中cvs(系统-系统管理-新立得软件包管理器,在右边的软件包列表中随便选中一个,然后键盘上按cvs这三个字母,就会定位到以这三个字母开头的软件包),然后点击鼠标右键,在菜单中选中标记以便安装。然后点击上方工具栏中的应用,系统会自动下载包,然后安装。

2.安装CVSD,同上,选中cvsd,安装。安装cvsd后,会提示设置repository的位置,这个地方只要输入相对于RootJail的位置就可以。RootJail在/etc/cvsd/cvsd.conf中进行设置,缺省的RootJail是/var/lib/cvsd。也就是说,在这一步里面输入/myrepos就可以了。

3. 打开一个命令行窗口,创建这个/myrepos。
#cd /var/lib/cvsd
#sudo mkdir myrepos

4.初始化这个/myrepos。
#sudo cvs -d /var/lib/cvsd/myrepos init

5.设置cvsd的用户认证方式,缺省的是系统级的,一般来说cvs的用户都是单独设置的。
#sudo gedit /var/lib/cvsd/myrepos/CVSROOT/config
添加以下几行:
SystemAuth=no
PamAuth=no
LockDir=/tmp/myrepos
然后保存退出。注意此处的/tmp/myrepos是指相对于RootJail的路径。

6.创建LockDir
#sudo mkdir /var/lib/cvsd/tmp/myrepos

7.添加用户
#sudo cvsd-passwd /var/lib/cvsd/myrepos cvsuser

8.编辑cvsd的配置文件,配置那个该死的RootJail。
#sudo gedit /etc/cvsd/cvsd.conf
缺省的应该是:
RootJail /var/lib/cvsd
Repos /myrepos
注意此处的Repos的路径也是相对于RootJail的。
另外,如果有些变态的网管喜欢封端口的话,这里可以设置cvsd的监听端口,比如可以改缺省的2401端口为8080。
Listen * 8080

10.设置目录权限。
#sudo chown cvsd:cvsd /var/lib/cvsd -R

11. 重新启动cvsd。
#sudo /etc/init.d/cvsd restart

12. 在eclipse或者其他的cvs客户端中配置使用此cvs服务器。
connection type:pserver
host:your ip
port:8080
repository path:/myrepos
user:cvsuser

其实这个cvsd的安装,主要是参照它的README,只不过它是一个压缩文件,一开始没想解开看看而已。/usr/share/doc/cvsd/README.gz。
 

 

 

在Eclipse中使用CVS系统

前面已经提到,CVS的数据存放在服务器的数据库中。为了支持Concurrent这一并发特点,CVS使用了一个分枝(Branch)模型,以保证不同开发者的相对独立,但是又高度集成。分枝可以看成一个开发团队共享的工作区(Workspace),在CVS数据库中,有一个特殊的分枝称为HEAD,代表主要工作流。

开发者可以提交(Commit)自己的工作,并通过更新(Update)与其他人的最新修改保持同步。提交是把自己的修改提交给数据库,称为输出(Outgoing),更新则是得到其他人的修改,称为输入(Incoming)。每次提交之前,都应该先更新,以保持与最新状态同步。

因此,在Eclipse中使用CVS进行团队开发,理想的开发流程应该是这样的(具体操作方法随后介绍):


图2:团队开发流程
图2:团队开发流程

  1. 从最新状态开始。开始工作前,要保证所有资源与最新的分枝状态一致。对于从头开始的新项目,首先要连接服务器,设定存储那些资源文件。对于在服务器数据库中已经有记录的项目,首先要通过更新来保证资源状态最新。如果本地的工作没有需要特别保存的,可以直接把数据库中的最新版本Check Out As Project,或者Replace With,Latest from Repository。
  2. 进行本地工作,保存修改。
  3. 同步。当做好提交工作的准备后,要和服务器数据库同步。
    1. 首先应该更新(Update),检查所有的Incoming改变,输入到本地,看是否会影响自己的工作,是否会造成冲突,破坏完整性等等。
    2. 检查完更新后,可以确认自己的工作和最新的Branch内容是一致的,就可以提交(Commit)自己的修改了,标上适当的注释。

下面介绍这一开发流程所用到的主要操作。

对于一个新的项目而言,首先需要做的就是设置Eclipse来连接CVS服务器。首次连接将与服务器同步(Synchronize)。

首先在Eclipse的资源视图(Resource Perspective)或者Java视图(Java Perspective)中的项目上点右键,选择Team,Share Project,将出现提示窗口,选择是使用已知的CVS数据库位置还是新建数据库位置。对于第一次连接CVS服务器的情况,将需要首先定义连接所需的服务器参数和路径,用户名,密码等等。这些参数将得到保存,以后如果需要重新连接,就可以直接使用已知的CVS数据库设置。

这里我们选择新建一个数据库位置,进入下一个输入画面。

这里的主机名(Host)可以输入localhost(在Windows NT 4下不可以这样输入),因为我们的CVS服务器就在本机上。

接下来输入/work,设定我们的项目数据存放在这一数据库根路径下。

然后输入用户名和密码。

连接类型选择pserver,端口是缺省的不用改动。当然,如果你修改过CVS服务器使用的端口,这里就要保持一致。


图3:在Eclipse中设置使用CVS系统
图3:在Eclipse中设置使用CVS系统

接下来可以直接点击Finish完成设置。如果点击下一步,可以继续定义在CVS中是否使用与项目名不同的名字作为模块名,缺省是使用相同的名字。

现在我们完成了项目与CVS服务器的连接,项目已经和CVS服务器同步了。

但是这并不意味着CVS已经开始记录版本信息。因为在一个项目中可能有相当一部分资源文件不适合存储到数据库中记录版本信息,比如编辑器生成的临时文件,编译生成的.class文件,或者某些编译过程生成的二进制文件等等。因此,Eclipse并不自动把所有文件存储到数据库中,需要开发者手工指定把那些文件存储到数据库中,也就是加入版本控制add to version control。对于单个文件的指定,可以随时在资源视图(Resource Perspective)或者Java视图(Java Perspective)中的文件上使用右键,选择Team,Add to Version Control。如果需要存储整个项目或者同时指定多个文件,则要使用同步(Synchronize)视图。

注意项目与CVS服务器连接完成并同步后,在Eclipse右下角的Tasks和Console的位置新出现了一个Synchronize窗口,下方状态栏也显示了这次同步的状态信息。双击Synchronize窗口的标题栏使之最大化,我们可以看到窗口上半部分列出了所有尚未指定加入数据库的资源和文件。在这里我们可以同时选择多个文件,甚至选择整个项目,使用右键,选择Team,Add to Version Control,就可以把多个文件或者整个项目加入到数据库中,开始记录其版本信息。

我们可以看到,这时的同步视图上标明了处于Outgoing模式。同步(Synchronize)视图有Incoming模式和Outgoing模式,对应于提交(Commit)和更新(Update)操作,表示目前修改是来自本地还是来自服务器。当然,视图也可以同时显示Incoming和Outgoing方向的变化。当有变化时,在下半部分的比较窗口可以显示不同版本之间的差异和变化。进一步地,可以通过工具条上的合并(Merge)操作来消除对同一文件不同修改所带来的冲突。

在此之后,当完成对文件或者项目的修改,需要确认修改,把最新的状态存储到数据库中去,就需要执行提交(commit)操作。类似的,我们可以在资源视图(Resource Perspective)或者Java视图(Java Perspective)中的文件上使用右键,选择Team,Commit;或者在同步(Synchronize)视图中同时提交多个文件乃至整个项目。注意,每次提交时都会提示输入注释,这是很重要的,作为每一个状态的说明和提示。

当我们需要把文件或者项目的不同版本进行比较或者替换时,可以在资源视图(Resource Perspective)或者Java视图(Java Perspective)中的文件上使用右键,选择Team,Compare With或者Team,Replace With来完成。进行比较时将打开一个比较编辑器,很好地表示不同版本之间的差异,和Local History类似。

如果要了解CVS数据库的内容情况,可以使用CVS数据库浏览视图(CVS Repository Exploring Perspective)。我们可以点击Eclipse左上角的开启视图(Open Perspective)按钮,增加这一视图到左边的视图浏览栏里。前面已经提到,HEAD代表CVS数据库里的主流内容。展开Versions,可以看到以往的版本。另外,在右下角有数据库的历史记录标明每次修改的相关信息。

如果需要导出某一版本,就要用到Check Out操作。在某一版本上右键选择Check Out As Project,这将把这一版本导出为同名的项目,从而可以覆盖已有的状态,或者选择Check Out对话框来导出为其他项目。


图4:CVS数据库浏览视图
图4:CVS数据库浏览视图

关于更详细的CVS使用方法和技巧,可以参考Eclipse的帮助中相关内容。

这篇关于ubuntu 下eclipse集成cvs的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/797141

相关文章

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

【Shiro】Shiro 的学习教程(三)之 SpringBoot 集成 Shiro

目录 1、环境准备2、引入 Shiro3、实现认证、退出3.1、使用死数据实现3.2、引入数据库,添加注册功能后端代码前端代码 3.3、MD5、Salt 的认证流程 4.、实现授权4.1、基于角色授权4.2、基于资源授权 5、引入缓存5.1、EhCache 实现缓存5.2、集成 Redis 实现 Shiro 缓存 1、环境准备 新建一个 SpringBoot 工程,引入依赖:

系统架构师-ERP+集成

ERP   集成平台end:就懒得画新的页

Spring Boot集成Tess4J实现OCR

1.什么是Tess4j? Tesseract是一个开源的光学字符识别(OCR)引擎,它可以将图像中的文字转换为计算机可读的文本。支持多种语言和书面语言,并且可以在命令行中执行。它是一个流行的开源OCR工具,可以在许多不同的操作系统上运行。Tess4J是一个基于Tesseract OCR引擎的Java接口,可以用来识别图像中的文本,说白了,就是封装了它的API,让Java可以直接调用。 Tess

使用Spring Boot集成Spring Data JPA和单例模式构建库存管理系统

引言 在企业级应用开发中,数据库操作是非常重要的一环。Spring Data JPA提供了一种简化的方式来进行数据库交互,它使得开发者无需编写复杂的JPA代码就可以完成常见的CRUD操作。此外,设计模式如单例模式可以帮助我们更好地管理和控制对象的创建过程,从而提高系统的性能和可维护性。本文将展示如何结合Spring Boot、Spring Data JPA以及单例模式来构建一个基本的库存管理系统

Spring Boot集成PDFBox实现电子签章

概述 随着无纸化办公的普及,电子文档的使用越来越广泛。电子签章作为一种有效的身份验证方式,在很多场景下替代了传统的纸质文件签名。Apache PDFBox 是一个开源的Java库,可以用来渲染、生成、填写PDF文档等操作。本文将介绍如何使用Spring Boot框架结合PDFBox来实现电子签章功能。 准备工作 环境搭建:确保你的开发环境中安装了JDK 8或更高版本,并且配置好了Maven或

springboot+maven搭建的项目,集成单元测试

springboot+maven搭建的项目,集成单元测试 1.在pom.xml文件中引入单元测试的依赖包 <!--单元测试依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></depen

eclipse安装subversion(SVN)版本控制插件

陈科肇 查看插件更新站点 网址:http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA 网站截图: 根据自己的eclipse版本,选择需要的更新站点. 使用eclipse集成subservion插件 Help > Install New Software…> 等待下载安装插件…

在Ubuntu 20.04上安装Nginx的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 Nginx 是世界上最流行的 Web 服务器之一,负责托管互联网上一些最大和流量最高的网站。它是一个轻量级选择,可以用作 Web 服务器或反向代理。 在本指南中,我们将讨论如何在 Ubuntu 20.04 服务器上安装 Nginx,调整防火墙,管理 Nginx 进程,并设置服务器块以从单