在上一篇文章《(二)版本控制管理器之CVS(上)》中,我为大家介绍了什么是CVS、CVS的特点、CVS的安装、CVSNT服务器的配置、TortoiseCVS客户端的配置等,本篇文章继续为大家分享关于CVS的知识,Visual Studio 开发工具如何结合CVS一同开发使用。

一讲到微软这家大牛公司,就想到它得意开发集成工具的作品:Visual Studio,很多开发团队或公司在使用Visual Studio做项目开发的时候很自然的使用Visual SourceSafe(VSS)作为其源码管理工具,在后面的文章我会大家一一讲解。

(1)建立Visual Studio.Net工程并加入到CVS中

    与SourceSafe相比,CVS中的Repository相当于SourceSafe中的Database,CVS中的Module与客户端的目录结构一一对应。因此,Visual Studio.Net以目录为单位,将Solution保存在CVS对应Modules中。

     A)建立新的Visual Studio.Net工程(任意),Solution视图如下所示:

     

     此时VS.Net中有一个名为CVSSolution的解决方案(Solution)以及在CVSSolution下有一个名为GraphicsPath1项目(Project)。

    B)将CVSSolution加入CVS,右击Solution视图,在弹出菜单中选择“Add Solution to Source Control…”,将弹出以下对话框:

   

   CVS的远程访问一般使用pserver协议,CVSROOT的格式如下:

     :pserver:username:pasword@hostname:repository

     此处的Repository选择了图二所示的MyFirstRepository,点击Check按钮测试服务器连接,此时将弹出CVS Login对话框,提示输入密码(当然密码也可以在CVSROOT中指定):

    

  此时,如果连接成功,则会弹出以下信息对话框,否则会弹出信息:

   

(2)TortoiseCVS使用手册

  1.设置工作目录:

  在目录“D:repository”下,存放三个配置库。配置库的名称分别为“cvstrain”、“cvstrain1”、“cvstrain2”。则在“D:repository”下分别新建“cvstrain”、“cvstrain1”、“cvstrain2”三个目录。如图:

  2.检出配置库:

  在工作目录下,鼠标左键选中检出的配置库所对应的目录“cvstrain”,点击鼠标右键选择“CVS取出(K)…”检出配置库内容。如图:

  弹出“取出模块”对话框。如图:

在“取出模块”对话框的选项中:

“CVSROOT:”填入mail中的CVSROOT信息;

“模块:”填入“.”;

配置库中的文件将开始下载到本地目录“D:repositorycvstrain”下。检出配置库完成,如图:

配置库检出后文件夹图标变为

  3.更新配置库:

  鼠标左键选中目录“cvstrain”,点击鼠标右键,选择“CVS更新(U)”,如图:

  4.修改、提交文件:

文件修改后文件图标显示为 ,在修改的文件上鼠标右键选择“CVS提交(C)…”。如图:

在“提交”对话框中的“注释”写一些简洁的说明文字,点击“确认”按钮。添加、提交文件完成。如图:

文件提交成功后文件图标显示为

  5.添加、提交文件:

不在配置库中的文件图标显示为

在待添加的文件上鼠标右键选择“CVS添加(A)…”。如图:

在“添加”对话框中确认添加的文件格式是否正确,点击“确认”按钮添加。如图:

注意

添加有二种方式:

1.以文本文件/ASCII方式添加。

2.以二进制方式添加。

如添加文件时需要修改文件格式,在文件上点击右键,选择添加的方式。如图:

文件添加后图标显示为 。

  6.删除、提交文件:

在待删除文件“test1.txt”上鼠标右键选择“CVS”→“删除(R)”。如图:

在本地目录空白处鼠标右键选择“CVS提交(C)…”。如图:

  7.删除目录:

TortoiseCVS界面上并没有这样的功能。不过,可以在CVS服务器仓库中手动删除目录。若需要删除目录,请与SCM工程师联系。

  8.创建标签:

在待创建标签的文件上鼠标右键选择“CVS”→“标签(T)”。如图:

弹出“标签”对话框中,选择“创建新标签”,填写要添加的tag为“build-abc”。点击“确认”按钮。如图:

查看文件标签,在文件上右键选择“CVS” →“版本分支图(G)…”。如图:

  9.删除标签:

在待删除标签的文件鼠标右键选择“CVS”→“标签(T)”。如图:

弹出“标签”对话框中,选择“删除已有的标签”,点击“确认”按钮。如图:

  10.查看历史版本:

在待查看文件上鼠标右键选择“CVS” →“版本分支图(G)…”。如图:

在“版本分支图”中查看文件历史版本。如图:

附:文件图标说明

链接文章:https://my.oschina.net/tadcat/blog/150033

本篇文章到这里就基本对CVS这个版本控制管理器的讲述完了,想必大家都对CVS都不会陌生了吧,其实它的操作跟SVN相差不了多少,在下一篇文章中我们继续了解下一个版本控制器(VSS),我将在这里带领大家了解版本控制的奥秘,前提是大家真心跟随本人走进那个领域,若本篇文章存在不足,请留言赐教。

A young ilder ~ an old beggar !

(三)版本控制管理器之CVS(下)的更多相关文章

  1. (二)版本控制管理器之CVS(上)

    在前一篇<(一)版本控制管理器之发展史>的介绍中,有提到古典时期的CVS,那什么是CVS?CVS特点是什么?怎么个用法?等一系列的问题,虽然这个版本控制管理器早已过时,但大家了解下也不妨, ...

  2. (四)版本控制管理器之VSS

    在上一篇<(二)版本控制管理器值CVS(下)>的文章中,我为大家介绍了CVS这个版本控制器,接下来我继续跟大家分享介绍下一个版本控制管理器--VSS,为什么要说这个版本控制器呢?早已过时的 ...

  3. 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)

    摘自 http://blog.csdn.net/liujun13579/article/details/7773945 三十二.Java图形化界面设计--布局管理器之CardLayout(卡片布局) ...

  4. 三十一、Java图形化界面设计——布局管理器之GridLayout(网格布局)

    摘自http://blog.csdn.net/liujun13579/article/details/7772491 三十一.Java图形化界面设计--布局管理器之GridLayout(网格布局) 网 ...

  5. 三十三、Java图形化界面设计——布局管理器之null布局(空布局)

    摘自http://blog.csdn.net/liujun13579/article/details/7774267 三十三.Java图形化界面设计--布局管理器之null布局(空布局) 一般容器都有 ...

  6. Swing-布局管理器之GridLayout(网格布局)-入门

    注:本文内容源自于三十一.Java图形化界面设计——布局管理器之GridLayout(网格布局),笔者在学习过程中根据自身理解修改了部分代码. 网格布局特点: l  使容器中的各组件呈M行×N列的网格 ...

  7. 通过TortoiseGit来使用Github或Visual Studio Online版本控制管理

    一.前言 关于Git源码不再多阐述,它就是一款开源分布式版本控制工具,它在源码管理领土上目前为止,使用者比例很大,越来越多的人使用该工具来管理项目源码,且相当多的开源的项目都移步到Github中,如: ...

  8. 转:Java图形化界面设计——布局管理器之FlowLayout(流式布局)其他请参考转载出处网址

    http://blog.csdn.net/liujun13579/article/details/7771191 前文讲解了JFrame.JPanel,其中已经涉及到了空布局的使用.Java虽然可以以 ...

  9. Java图形化界面设计——布局管理器之FlowLayout(流式布局)

    一.布局管理器所属类包 所属类包 布局管理器名称 说明 Java.awt FlowLayout(流式布局) 组件按照加入的先后顺序按照设置的对齐方式从左向右排列,一行排满到下一行开始继续排列 Bord ...

随机推荐

  1. java遍历Map

    //方法一 Set<String> keys = map.keySet(); for (String key:keys) { System.out.println(key+",& ...

  2. 从零开始学 Web 之 Vue.js(五)Vue的动画

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  3. 【原创】Python第二章——行与缩进

    Python的基本组成——逻辑行和缩进 a="我是一个物理行" a="""我是一个逻辑行 因为我一条语句便跨越了2个物理行""&q ...

  4. Ubuntu环境下mysql常见的操作

    1    启动mysql服务:Service mysql start 再次启动:service mysql restart 停止mysql服务:service mysql stop 确定mysql是否 ...

  5. Perl面向对象(3):解构——对象销毁

    本系列: Perl面向对象(1):从代码复用开始 Perl面向对象(2):对象 Perl面向对象(3):解构--对象销毁 第3篇依赖于第2篇,第2篇依赖于1篇. perl中使用引用计数的方式管理内存, ...

  6. ife 零基础学院 day 2

    第二天:给自己做一个在线简历吧 最后的验证,提出了几个问题,尝试解答一下 HTML是什么,HTML5是什么 HTML的定义摘抄自w3school的HTML 简介 HTML 是用来描述网页的一种语言. ...

  7. MyBatis学习总结(四)——MyBatis缓存与代码生成

    一.MyBatis缓存 缓存可以提高系统性能,可以加快访问速度,减轻服务器压力,带来更好的用户体验.缓存用空间换时间,好的缓存是缓存命中率高的且数据量小的.缓存是一种非常重要的技术. 1.0.再次封装 ...

  8. linux基本命令手册

    常用指令 ls         显示文件或目录 -l           列出文件详细信息l(list) -a          列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir    ...

  9. oracle表空间大小的限制和DB_BLOCK_SIZE的概念

    之前接触的项目表空间最大也不超过10G,所以导入数据库时一直使用导入本地的oracle数据库文件的方法,即根据dmp文件大小设置一个数据文件,设定表空间最大值. --创建表空间,数据文件为'F:\ap ...

  10. python面向对象学习(七)单例

    目录 1. 单例设计模式 单例设计模式的应用场景 2. __new__ 方法 3. Python 中的单例 只执行一次初始化工作 1. 单例设计模式 设计模式 设计模式 是 前人工作的总结和提炼,通常 ...