团队开发利器CVS培训基础讲义

Green Hills工具链中的版本控制集成与实践 版本控制系统是软件开发中管理代码变更的核心工具,通过记录文件修改历史实现团队协作与版本回溯。在嵌入式开发领域,Green Hills工具链集成了GHS-Checkout Browser模块,为CVS/Subversion等版本控制系统提供深度IDE集成方案。该工具通过可视化文件状态、原子提交和冲突解决等功能,显著提升了嵌入式开发的工程效率,特别适用于需要频繁切换代码版本的汽车电子、工业控制等实时系统开发场景。文章重点解析了GHS-Checkout Browser与Green Hills编译器的无缝配合机制, 阅读详情
一、CVS(Concurrent Version System)简介

  1、CVS机制
  CVS是RCS的前端工具,它是用于多用户并行开发的版本控制工具,它的最大特点是使用了“copy-modify-merge”机制而不是“lock-modify-unlock”。通过使用 CVS生成一个存储文件的仓库(repository),存储在仓库中的每个目录叫做模块(module),在修改时将相应的模块检出到工作目录中(working directory)生成对应的目录,所有的修改都在工作目录中完成,修改完成后再提交到仓库中生成新的版本号,并加以保存。

  CVS把文件保存在一个名叫仓库(repository)的地方,仓库中保存的文件并不是每个版本的副本,而是可以从任意版本回溯到初始版本的一些代码的主控信息,这样,就节省了大量的存储空间风靡全球的 LINUX操作系统就是在大型分布式CVS系统上开发成功的。

  全球最著名的软件工程软件提供商Rational Sofdtware的ClearCase是CVS的替代产品,比CVS稍有增强

  2、CVS的版本编号

  分为系统编号和用户编号

  系统编号是CVS自动给版本编的号码。CVS自动管理系统编号。单分支版本演化以1.0->1.1->1.2-...的方式顺序进行。

  用户编号是用户为了自己控制版本号码,或者统一版本号码,而对某一版本指定的编号。

  二、CVS建议开发流程

  为避免其他人更新时导致无法编译的错误,建议先在开发环境中开发,编译通过后在没有大的改动情况下放入CVS中进行管理,然后发布到测试及生产环境。

  以总公司网站开发为例,流程如下:

  开发环境(192.168.16.33) -> CVS(192.168.16.38) -> 生产环境(192.168.16.34)

   三、WinCvs的使用

  1、如何设置本地工作目录:

admin -> preference -> WinCvs -> HOME folder

  2、如何列出CVS服务器上的modules?

admin -> Macros admin -> Get the cvs modules

  CVSROOT 模块下的文件modules控制着modules的显示,由系统管理员管理。

  3、如何将CVS服务器上的modules取到本地工作目录?

  选中待取module -> Create -> Checkout modules... -> 输入modules名 ->确定。

  4、如何将新增的程序或文档纳入CVS管理?

  将新增的程序或文档copy到CVS本地工作目录 -> 右键 -> Add selection 或 Add selection binary(由文档类型决定) -> Commit selection (建议文件修改后,在commit时加上本次修改的简短描述,便于以后在log中查看历史记录。)

  5、如何修改已存在程序或文档?

  右键 -> Edit selection -> 修改完毕 -> Commit selection

  6、如何放弃修改?

  只要还未commit,右键 -> Unedit selection

  7、如何将新创建的Module放入cvs服务器中?

  1)将包含欲放入库中的目录copy于工作目录下

  2)输入模块 Create -> Import module

  3)在弹出的文件对话框中选择你要输入的工程目录的顶级目录,并确使文件夹 图标打开

  4)如果弹出筛选窗口,确保提交的文件被正确地设置了文本或二进制

  5)点击OK按钮,wincvs然后将整个目录结构输入到CVS服务器中

  8、如何更新刚创建的modules

  1)在本地移走你的原始目录

  2)将CVS服务器上的modules取到本地工作目录(参见上面第3步)

  9、如何解决冲突?

  当二人或更多人修改了同一文件时就会发生冲突,此时可打开有问题的文件,搜索以<<<<<<<开始的行。冲突区有这样的标价:

  <<<<<<< 文件名

  你的修改

  ========

  从库中合并的代码

  >>>>>>> 修订版

  你要判断代码应该是什么,作必要的修改,删除cvs的标价,然后将你的修改提交到库中。

  建议:在修改cvs中的文件时,先Update selection一下。

  10、如何取回以前的版本?

  Graph selection -> 右键 -> tag selection 。

  11、如何在modules小窗口中看见CVS的本地工作目录?

  View -> Browse Location -> 在弹出的窗口中选择本地工作目录 -> 确定

  12、查看谁在修改文件

  右键 -> Editors of selection。列出正在编辑files的用户。

  13、如何查看文件的历史修改记录?

  右键 -> Log Selection

  14、什么情况下需要锁定登出(checkout)?

  对于 word文档、函数库等二进制文件,因无法由CVS合并,应当选中锁定登出。

  右键 -> Lock Selection

  Unreserved checkouts是CVS确省方式,允许其他用户修改被登出的文件。

  CVS不会告知第一个登入者是否还有人在修改文件。

  其他人要登入会得到错误信息,他们须先与仓库中的最新版本合并才能等入。

  对于源代码等,应选择非锁定登出,否则将大大降低软件生产率。

  如果非锁定登出造成严重的开幕冲突,那时因为开发者的沟通严重不足。

  注意:

  单纯的非锁定登出对许多项目而言是可行的。

  锁定登出控制过于严格,不利于提高软件生产率。

  介于两者之间的非锁定登出与监视机制结合,对许多小组是最佳选择。

   四、CVS补遗

  1、如何删除一个目录?

  需要先删除目录中的所以文件,使该目录成为一个空目录,然后运行cvs update -P让CVS从仓库中 清除空目录。

  2、如何重命名文件?

  将工作目录中的旧文件重命名为新文件。

-mv old new

  通知CVS删除旧文件

-cvs remove old

  通知CVS添加新文件

-cvs add new

  从CVS仓库中删除旧文件、添加新文件

-cvs ci -m "name old to new" old new

  3、CVS无法完成二进制文件的版本比较和版本合并,为此,应该避免版本分支。

  4、CVS无法更据文件内容识别二进制文件,但能够根据文件扩展名来识别那些文件是二进制文件,这是由cvswrappers配置文件定义的。

  5、设置只读用户

  向某些用户授权读取CVS仓库中的文件,但不允许他们修改文件。

  在$CVSROOT/CVSROOT/readers文件中列用户名,例如:

xuys
huyj
zousj
anonymous

   五、开发要点总结

  1、要对cvs中的文件进行修改时,先Update selection一下,然后进行编辑。

  2、对于源代码的修改,应选择非锁定登出。

  3、对于word文档等二进制文件,因无法由CVS合并,应当选择锁定登出。

  4、文件修改后,在commit时最好加上本次修改的简短描述,便于以后在log中查看历史记录

  5、小组成员之间要加强沟通。
 
Git官方和创始人都推荐的Git权威指南,广度深度和实战性史无前例 第三篇Git和声 ======== 第2篇和第3篇详细讲解了Git的使用方法,是本书的基础和核心,大约占据」全书 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》 【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享 40%的篇幅。这两篇的内容架构方式是我在进行SVN培训时就已经形成的习惯,即以“独奏”指代一个人的版本控制所要讲述的知识点,以“和声”指代团队版本控制涉及的话题。在第2篇“Git独奏”中,本书将Git的设计原理穿插 阅读详情

相关推荐

思科模拟器Cisco Packet Tracer交换机的管理配置

一、交换机的管理方式:带内管理和带外管理 通过交换机的 Console 端口管理交换机属于带外管理;这种管理方式不占用交换机的网络端口,第一次配置交换机必须利用 Console 端口进行配置。 通过 Telnet、拨号等方式属于带内管理。 二、控制台配置思科交换机 1.新建拓扑图 新建拓扑,选择console线连接交换机和PC,一端接交换机的console口,一端接PC的RS 232 口(...

qq_37992321的博客 2万+

学习 CVS 版本控制系统

<br /><br />学习 CVS 版本控制系统<br />从来没有试过版本控制系统,所以想学学。看介绍,微软的VSS似乎不错,不过一下子没找到,后来在网上找到了windows 平台上可以安装的CVS NT和WINCVS这两个软件,其中WinCVS还号称中文版。<br />安装挺顺利,都装好了。然后看它们带的说明书,CVSNT是服务器端软件,自带了一个帮助文件,当然是英文的。看了半天,举的例子都是LINUX上的,开头讲了半天CVS不是什么不是什么的东东,就是没讲如何一步步架设一个可用的CVS服务器,对我这

远方 2289

SAP VC实战:用CU01和CS02搞定BOM里的‘智能’对象相关性(附语法避坑指南)

在工业制造领域,产品配置的复杂性往往超出想象。想象一下,当客户需要定制一台工业设备时,可能有数百种配置选项相互影响——从基础材质到动力系统,从控制模块到安全装置。如何在SAP系统中优雅地管理这种复杂性?对象相关性(Object Dependencies)就是解决这一挑战的利器。

weixin_42524824的博客 468

cvs团队开发利器CVS培训基础讲义

一、CVS(Concurrent Version System)简介 1、CVS机制 CVS是RCS的前端工具, 它是用于多用户并行开发的版本控制工具,它的最大特点 是使用了“copy-modify-merge”机制而不是“lock-modify-unlock”。通过使用 CVS生成一个存储文件的仓库(repository),存储在仓库中的每个目录叫做模块 (module),在修改时...

jzgl_cadn的专栏 208

2021-10-29 atcoder ABC157——B - Bingo

B - Bingo 先标记,然后暴力判断,这样最清晰最好想。 #include<iostream> #include<algorithm> #include<cstring> using namespace std; typedef long long LL; int a[110][110],b[110]; int main() { for(int i=1;i<=3;i++) for(int j=1;j<=3;j++) cin>>a[i]

honeistbutter的博客 339

企业AI Agent审计与合规:从日志留存到网络联动的完整落地指南

审计日志是企业安全与合规体系的基石,尤其在AI Agent大规模接入业务后,如何完整记录其行为链成为新的挑战。从日志留存180天到PCI DSS合规要求,审计体系需要覆盖会话、推理、工具调用、数据访问等关键环节,并结合不可篡改的存储设计,确保证据链可信。同时,借鉴上网行为管理设备对应用行为控制审计的思路,以及Kismet被动监测网络流量的方法论,将网络侧审计与应用侧日志交叉验证,能有效发现越权和异常行为。本文从日志采集、全链路追踪、基线预警到多租户隔离,系统梳理了AI Agent审计与合规落地的关键路径,帮

weixin_32234493的博客 270

UML软件建模技术、工具与应用免费培训课程邀请您参加!

培训时间:2008年10月21日上午9:00—下午17:00 培训对象:程序员、设计师、架构师、系统分析师、项目经理(每企业限2人) 培训专家: 青润(优快云特约专家、全程建模专家);楚凡科技UML高级培训师 培训费用:免费 培训赠品:每人一套价值990元的正版UML建模工具+300元培训代金

企业级UML2建模工具、MDA工具、数据库建模工具、需求管理工具、集成开发平台 580

python 爬取携程全国旅游景点信息-2024.4.13

携程网是中国领先的在线旅行服务公司,提供酒店预订、机票预订、旅游度假、商旅管理等服务。携程网上有大量的旅游景点和酒店信息,这些信息对于旅行者和旅游业者都有很大的价值。通过爬虫技术,我们可以从携程网上获取这些信息,并进行数据清洗、数据分析、数据可视化等操作,从而得到有用的洞察和建议。

britlee的博客 1万+

史无前例!字节跳动11.1Git权威指南爆款笔记,魅力何在?

前言 大家对Git了解有多少?知道Git是做什么的吗?版本控制是管理数据变更的艺术,无论数据变更更是来自同一个人,还是来自不同的人(一个团队)。版本控制不但要忠实地记录数据的每一次变更,还要能够帮助还原任何一次历史变更,以及实现团队的协同工作等。而Git 就是版本控制系统中的佼佼者。 版本控制能决定项目的成败,甚至是公司的生死,此言不虚。在推广开源项目管理工具和为企业提供咨询服务的过程中看到,有很多团队因为版本控制系统管理的混乱导致项目延期、修正的Bug重现、客户的问题不能在代码中定位……无论他们使用的

如果频繁就私信一下呢 427

OpenCode:终端开源AI编程助手,多模型接入与实战指南

AI编程助手正在从IDE侧边栏走向终端环境。其核心原理是让模型直接读取项目文件、执行命令、查看报错,形成从诊断到修复的完整闭环,从而解决传统插件上下文割裂的问题。技术价值在于开源透明、模型无关,既可接入OpenAI等云端服务,也能通过Ollama连接本地模型,兼顾数据安全与离线场景。在工程实践中,它适用于长时间驻留项目、自动修Bug、团队统一AI工具链等需求。OpenCode正是这样一款终端AI助手,支持灵活配置第三方API密钥,提供免费档与Go套餐,并通过Skills技能系统让模型遵循标准操作流程。同时,

weixin_28745821的博客 328

攀藤PMS系列传感器STM32驱动开发与数据解析实战

本文详细介绍了攀藤PMS系列传感器与STM32微控制器的驱动开发与数据解析实战,涵盖硬件连接、数据协议解析、驱动源码编写及数据处理优化。重点解析了传感器数据帧结构,提供了完整的STM32驱动实现代码,并分享了实际应用中的问题排查与性能优化经验,帮助开发者快速实现高精度颗粒物浓度检测。

milk8的博客 348

十大精选开源软件推荐:编程化繁为简

开源这块甜蜜的巧克力酱备受宠爱,似乎人人都想尝尝。这一次,我为开发者们贡献十款开源编程工具,它们分别是Rhomobile Rhodes、Git、Gerrit、Hadoop等,这十款开源工具会越来越流行,想知道其中的奥秘吗?让我们一起来看看它们的神奇之处吧!   1.Rhomobile Rhodes   Ruby可能是GitHub上的第二大流行编程语言,但如果你想从事与iPhone相关的开发工作

拾贝者 4524

PC 端微信页面拆分及 JavaFx 使用

一、前言 对于一个知识点的学习过程来说,往往使用自己熟悉的工具或方式才更易于上手。因为所有同类型的知识点在抛出复杂的流程拨云见日后,所能得到的几乎都是同样的设计思想和实现理论。 在 Java 语言桌面版开发中,直至目前共提供了三套 UI 开发方式;Awt、Swing、JavaFx,以及一些扩展组件 SWT 等。在这三套 UI 组件中,JavaFx 是最新也是最为好用的,因为他提供了丰富的功能,以及...

bugstack虫洞栈 3615

分布式版本控制:Git核心原理、实战流程与企业级协作全解

工作区:本地项目实际编辑的文件目录,日常代码编写、修改的核心场景;暂存区:临时缓存区域,用于筛选、预存本次需要提交的修改,支持批量筛选文件;本地仓库:本地持久化版本库,保存每一次完整迭代快照,支持版本回溯;远程仓库:云端(Gitee/GitHub)共享仓库,用于团队代码同步、多人协作交付。开发场景核心命令项目初始化git init克隆远程项目git clone 仓库地址查看项目状态代码差异对比文件加入暂存区git add 文件名 / git add .版本提交本地仓库。

2301_80775213的博客 1013

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

0.4 文件与文件夹:数据是怎么存放的,一篇讲清目录树

电脑里几万个文件怎么归类?本文讲清文件是有名字的数据单位、文件夹(目录)是可层层嵌套的收纳容器,二者共同构成目录树,最顶层是根目录;建立字节/KB/MB/GB 的大小直觉,介绍 Linux 一切皆文件的设计;用一张表讲清复制、移动、重命名、删除的区别,以及 Delete 进回收站、Shift+Delete 永久删除的差异;最后从安全视角讲文件上传(伪装脚本上传即 WebShell)与路径穿越(ZipSlip 把文件写到敏感位置),提醒凡是文件读写都要警惕路径被操纵。

一个安全白帽子的成长记录:Web 安全、漏洞复现、内网渗透。完整目录在 gysec.top 253

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

LangGraph 本地 build 频频翻车,最终在服务器跑通流式对话

先说结论:我本地那个,一次都没成功过。三次,三次,全挂在拉镜像上。而顺得像刚上过油。这就很像我高中那辆自行车:骑着能走,一上锁就坏。那天晚上我盯着终端里那行红字看了很久,想的不是技术方案,想的是——为什么同一个工具,可以一边让我觉得自己很行,一边让我觉得自己不太行。

人工智能AI技术 319

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VSCode_RemoteSSH_一直卡在下载服务器_解决教程

解决VSCode远程一直卡在下载服务器

m0_69395553的博客 141

自建 Git 服务器和裸仓库差在哪:要能提合并请求

在一台 Linux 上 git init --bare 就能自建 Git 服务器,但它只能推拉代码,没有网页、合并请求、评审和按仓库分配的权限。对照裸仓库和 AngusGit 各自能做什么,再走一遍在 AngusGit 上发起合并请求的最短路径,以及已有裸仓库怎么完整搬过来。

AngusTester 333

Linux epoll 一篇讲透:从 select/poll 到红黑树、LT/ET,再到完整 TCP 服务器

一万个客户端已经连上服务器,眼下只有十个客户端发来了数据。服务器怎样把时间花在这十个连接上?理解这个问题,就抓住了 epoll 的主线。接下来,我们沿着“为什么需要它 → 接口怎么用 → 内核如何实现 → LT/ET 怎么写 → 完整服务器怎么运行”的顺序,把知识连起来。**阅读基础:**了解socketbindlistenaccept的基本用途即可。本文示例面向 Linux,服务器使用 C++17,实验脚本使用 Python 3。

2601_94861874的博客 445
上一篇: JUnit学习笔记(2007版)
下一篇: 转 让你的Tomcat5.5.*以上的版本如同Tomcat5.0.27版本一样,记录应用程序的日志
eyejava
博客等级 码龄20年 11粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值