TortoiseCVS1813入门操作技巧1Word文件下载.docx
《TortoiseCVS1813入门操作技巧1Word文件下载.docx》由会员分享,可在线阅读,更多相关《TortoiseCVS1813入门操作技巧1Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
cvs用隔离开不同的开发者解决了这个问题。
每个开发者在他自己的目录里工作,等每一个开发者都完成了他们自己的工作后,cvs会将它们合并到一起。
cvs最初由DickGrune在1986年12月以shell脚本的形式发布在comp.sources.unix的新闻组第6卷里。
虽然当前的cvs中没什么代码来自于这些shell脚本,但许多cvs的冲突解决算法是从它们来的。
1989年4月,BrianBerliner设计了cvs并编写了代码。
之后JeffPolk帮助Brian设计了cvs模块和销售商分支支持。
II、CVS不是什么?
cvs可以为你做很多,但不要指望它能为每一个人做每一件事情。
cvs不是一个BUILD系统。
虽然你的仓库(repository)和模块文件与你的BUILD系统互相作用(例如:
Makefiles),但它们本质上还是互相独立的。
cvs不能指导你如何构造什么。
它只是将你所设计的一种树结构文件保存下来以备恢复之用。
cvs不能决定如何在一个检出工作目录使用磁盘空间。
如果你在每一个目录中都写下Makefile或脚本,且必须知道其它一切的相对位置,有时不得不要检出整个仓库。
如果你将你的工作模块化,并且建立了一个共享文件的build系统(通过links,mounts,Makefiles里的VPATH等),你就可以随意安排磁盘的使用。
不过你要记住构建和维护这样一个系统是要做许多工作的。
而cvs不善此道。
当然了,你应该在cvs下放一个工具来支持这样一个构造系统(脚本、Makefile等等)。
当有些变化发生在cvs范围之外时,要想想什么文件需要重建。
一个传统的方法是用make来构造,并用一些自动化的工具来产生make所用的相关文件。
关于结合cvs进行build,请参考Builds。
cvs不能替代管理。
你的经理和项目负责人应经常与你交流以确保你时时记得进度表、合并点、分支名和发布日期。
如果他们不这样做,cvs也没用。
cvs只是一个用来使你的资源与你的步调一致的工具。
但你是风笛手和作曲家。
没有哪种乐器会自己演奏或是作曲。
cvs不能代替开发者之间的交流。
在单个文件内遇到冲突时,大多数开发者不费多大力气就能解决它们。
但更常见的"
冲突(conflict)"
,是那些难度较大、不在开发者之间进行交流就没法解决的问题。
当在一个文件内或多个文件中同时发生变化时,cvs并不知道何时它们会在逻辑上发生冲突。
它的冲突(conflict)概念是纯粹文本意义上的,这种冲突会在同一个文件的两种变化十分接近以致于会破坏合并命令(如diff3)。
cvs决不会指出程序逻辑上非文本或分布式的冲突。
例如:
假如你改变了在文件A中定义的函数X的参数。
同时,别人在编辑文件B,仍用旧参数调用X这个函数。
此时产生的冲突cvs可就无能为力了。
要养成经常阅读说明书和经常与你的同伴交谈的习惯。
cvs没有变化控制
变化控制可以指许多事情。
首先它的意思可以是BUG跟踪bug-tracking,就是说它能维持一个数据库,其中包括已报告的BUG和每一个BUG状态(是否已更正?
在哪一个版本中?
提交这个BUG的人是否认为已经更正?
)。
为了使cvs和一个外部的跟踪BUG系统协调一致,请参考rcsinfo和verifymsg文件(参阅Administrativefiles)。
变化控制的另一个方面指跟踪这样的情况,即对好几个文件的改变实际上只是同一个逻辑变动。
如果你在一次cvscommit操作中检入几个文件,cvs会忘掉它们是一起检入的,它们共用一个LOG信息的事实只是把它们绑在一起而已。
做一个gnu风格的ChangeLog可能会有点用。
在一些系统中,变化控制的另一个方面是跟踪每个变化的状态的能力。
一些变化由一个开发者写出,而另一些变化则由另一个开发者来作出评论,等等。
一般来讲,用cvs来做,是产生一个diff(用cvsdiff或diff),并且用电子邮件寄给某人,此人就可以用patch来应用它。
这是非常灵活的,但依赖于cvs之外的机制以保证事情不会崩溃。
cvs不是自动测试程序
强制利用commitinfo文件测试套件应该是可能的。
不过我没有听说过多少项目试图那样做或那里有微妙的陷阱。
cvs没有内置的处理模型
有些系统提供一些方法确保变更或发布通过不同的步骤,以及各种所需的批准过程。
一般地,你可以用cvs来完成它,但是可能要多做点工作。
有些情况下你想用commitinfo、loginfo、rcsinfo或verifymsg文件,要求在CVS提交之前完成某些操作。
你也会考虑诸如branches和tags等特性是否能用在一个开发树中执行任务,然后仅当它们被证实就把某些修改合并到一棵稳定的树中。
二、安装
下载ftp:
//192.168.40.103/software/cvs/TortoiseCVS-1.8.13.exe并安装到指定盘符(需要重启);
重启后右键菜单会出现cvs选项
三、初始化
I、在某个空间比较富余的盘符的根目录建立一个文件夹(文件夹的名称请不要叫cvs,此为保留字),作为cvs的工作目录
II、鼠标右键点击这个新建立的cvs工作目录后会出现如图2.2.1的右键弹出菜单
图2.2.1
III、我们先将cvs变成中文版
1、点击Preferences…菜单项
图2.3.1
2、在弹出如图2.3.2对话框的language下拉菜单中选择windowsdefault(系统语言)或者Chinese(simplified)[GB2312],ok退出
图2.3.2
3、我们下次看到的菜单就会是这样
图2.3.3
IV、在再次图2.4.1的页面里将删除空文件夹前的复选框去掉(否则如果是空目录的话会自动帮你删除,我们不需要这项功能)
图2.4.1
V、从服务器端取出相应的模块
1、我们现在可以从cvs服务器端取出相关的模块了
图2.5.1
2、出现如图2.5.2对话框
图2.5.2
3、服务器输入192.168.40.103,端口空缺,仓库文件夹设为/cvsadmin,用户名就按照管理员给的帐号来输入,全部输入完成后如图2.5.3
图2.5.3
4、此时点击获取列表
5、会弹出一个cvs的处理对话框,等待其消失后点击模块下拉菜单打开模块列表,从其中选择您要使用的模块,此时确认对话框应该可选,如图2.5.4
图2.5.4
6、点击确认,中途会提示您输入密码,请按照管理员给出的帐号密码来登录。
7、完成后在选定目录就会出现如下一个文件夹
图2.5.5
8、说明该cvs目录可以正常使用了
VI、至此所有的初始化工作全部结束。
三、cvs的简单操作步骤
I、更新
1、每天开机后选中所有相关的模块点击右键,选择更新
2、耐心等待cvs系统处理完成,当确认可选时点击关闭,更新操作完成
II、建立文件夹结构
1、进入一个您拥有create权限的目录,建立一个子目录,鼠标右键点击该子目录,选择cvs添加或cvs添加内容
2、在弹出的对话框中选择确认,以完成添加操作
3、文件夹的cvs变成右图所示表示该文件夹已经加入cvs仓库
III、建立文件
1、在任何您有write权限的目录下建立一个文件,您将看到文件的cvs标志是一个蓝色底的问号,说明该文件和cvs没有任何关系(但是出线在了cvs目录,让cvs系统感觉很奇怪);
2、随后我们将这个文件加入cvs仓库,右键点击该文件,选择cvs添加;
3、cvs存储文件有两种格式:
二进制和文本文件;
纯文本形式的文件一般都是文本文件类型,如txt文件、htm文件等、c文件(又细分为ascii和unicode,凡是所有字符在ascii表中都可以查到的一般为ascii,比如纯英文文本或者是没有中文注释的代码文件,凡是有中文字符的都是unicode格式);
而图片文件、影像文件、以及常用的doc文件(word默认使用文档)都是二进制格式(简单的说凡是文件可以用记事本看到原文的都是文本格式,否则是二进制格式)。
两种格式对cvs而言存取和更新方式都有所不同,如果选错类型可能造成数据丢失,请留意一下。
Cvs会对文件的存储格式进行自动识别,一般不会出错,我们这里就按照默认点击确定完成;
4、可以发现文件的图标变成了右图所示的样子
;
5、右键点击该文件,选择cvs提交,弹出一个对话框,您可以在其中对这次提交写相关的注释,也可以看到这次你提交后仓库中增加的内容,这里我们点击确认来完成提交;
6、现在我们会发现该文件的图标变成了下图所示的样子,这说明该文件和cvs仓库已经完成同步。
IV、编辑文件
1、我们先打开要编辑的文件,进行相关处理后保存,我们将看到文件的图标变成
2、选择提交后发现该文件的状态变成了已修改,确认后完成编辑。
V、回溯版本
1、右键点击需要回溯的文件,在弹出的菜单中选择更新到指定版本
2、在更新对话框中您可以选择标签、分支、修订版本号或是修订版本的日期、时间,我们简单点,取回上个版本的文件内容,选择“取得标签/分支/修订版本(T)”前的复选框,并在后面的输入框中输入1.1,点击确认完成回溯;
3、您将会看到该文件又回到了之前的版本,您可以在这个版本的基础上进行修改。
四、简单选项功能介绍
I、上级文件夹菜单
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
A.从仓库中合并最后的版本到您的本地复制(本地的所有与仓库中不同的修改都将被覆盖);
B.使文件可写,以便编辑;
C.把您所做的修改提交到仓库中(覆盖仓库中所有与本地不同的内容)
D.添加选中对象及其子目录中不在cvs仓库里的内容(添加的内容除了文件还包括目录结构,且目录仅需要添加即可加入仓库,文件还需要提交);
E.通过web界面浏览程序的历史文件(具体见注1);
F.显示正在编辑的文件;
G.放弃此文件夹下所有文件的编辑;
H.生成一个包含你所做的更改的补丁文件(具体见注2);
I.执行特定分支或标签版本的升级,或取消您本地的变更(即回溯,具体可通过标签、分支、修订的版本号、日期、时间来返回之间的某个版本);
J.将两个文件的内容都合成到一个文件中,并用标记进行区分;
K.刷新文件夹覆盖图标以显示子目录状态;
L.使用一个命名的