现在的位置: 首页 > 综合 > 正文

版本控制工具 [转]

2013年10月14日 ⁄ 综合 ⁄ 共 11406字 ⁄ 字号 评论关闭
文章目录
版本控制工具

版本控制工具
    版本控制是程序开发、管理必不可少的工具,特别是在多人协作的团队中,适宜的版本控制工具可以提高开发效率,消除很多有代码版本带来的问题。本文首先列举没有版本控制工具时可能遇到的问题,再对主流版本控制工具做概要介绍,之后对作为Java开发者首选的版本控制工具CVS的历史、功能、概念做详细的介绍;最后在Eclipse+CVS环境中,以CVS使用的一个完整流程为例,介绍如何正确的使用CVS工具。

为什么要使用版本控制工具?
如果没有版本控制工具的协助,在开发中我们经常会遇到下面的一些问题:
一、 代码管理混乱。如果是别人添加或删除一个文件,你很难发现。没有办法对文件代码的修改追查跟踪。甚至出现文件丢失,或新版本代码被同伴无意覆盖等现象。
二、 解决代码冲突困难。当大家同时修改一个公共文件时,解决代码冲突是一件很头疼的事。最原始的办法是手工打开冲突文件,逐行比较,再手工粘贴复制。更高级的做法是使用文件比较工具,但仍省不了繁杂的手工操作,一不小心,甚至会引入新的bug。
三、 在代码整合期间引入深层BUG。例如开发者A写了一个公共函数,B觉得正好可以复用;后来A又对这个公共函数进行了修改,添加了新的逻辑,而这个改动的却是B不想要的。或者是A发现这个公共函数不够用,又新做了一个函数,B却没有及时获得通知。这些,都为深层BUG留下隐患。
四、 无法对代码的拥有者进行权限控制。代码完全暴露在所有的开发者面前,任何人都可以随意进行增、删、改操作,无法指定明确的人对代码进行负责。特别是产品的开发,这是极其危险的。
五、 项目不同版本发布困难。特别是对产品的开发,你会频繁的进行版本发布,这时如果没有一个有效的管理产品版本的工具,一切将变得非常艰难。
    上面只是列举了一些没有版本控制系统可能带来的问题,特别是对大型项目和异地协同开发有了一个合适的版本控制工具,它可以有效解决因为代码版本不同引起的各种问题,让我们的开发人员能更多的把精力花费在开发上面。而不是每次都花费很多时间进行代码整合和解决版本不同带来的各种问题。

主流版本控制工具介绍
    现在,有很多优秀的版本控制工具供我们选择,下面就五种主流的版本控制工具做简单的介绍。
Starteam
    是一个集合了版本控制、构建管理(Build Management)和缺陷跟踪系统为一体的软件,并且具有强大的图形界面,易学易用;但管理复杂、维护困难。2002年底被Borland公司收购。
PVCS Version Manager
     是美国的MERANT公司软件配置管理工具PVCS 家族中的一个组成部分,它能够实现源代码、可执行文件、应用文件、图形文件和文档的版本管理;它能安全地支持软件并行开发,对多个软件版本的变更进行有效的控制管理。
ClearCase(CC)
    是ROSE构件的一部分,目前最牛的配置管理工具,主要应用于复杂的产品发放、分布式团队合作、并行的开发和维护任务。可以控制word, excel,powerpoint,visio等文件格式,对于不认识的格式可以自己定义一种类型来标识。
Visual SourceSafe(VSS)
    简单易用、方便高效、与Windows操作系统及微软开发工具高度集成。
CVS(Concurrent Versions System)
    是开发源码的并发版本系统,它是目前最流行的面向软件开发人员的源代码版本管理解决方案。它可用于各种平台,包括 Linux 、Unix和 Windows NT/2000/XP等等。
    前面三种是重量级的商业版本控制工具,更适合庞大的团队和项目,并且价格不菲。Visual SourceSafe是微软的产品,当然只能用在windows平台并与微软的开发工具无缝集成。CVS免费开源,并且几乎所有开源项目都是使用CVS进行版本管理,无疑,它是我们Java开发者最优选择。

CVS的历史、功能、基本概念的介绍

历史
    CVS 诞生于 1986 年,当时作为一组 shell 脚本而出现;1989年3月,Brian Berlinor用C语言重新设计并编写了CVS的代码;1993年前后,Jim Kingdon最终将CVS设计成基于网络的平台,开发者们能从Internet任何地方获得程序源代码。截至目前最新版本是2004年12月13日发布的1.12.11。

功能介绍
一、 代码统一管理,保存所有代码文件更改的历史记录。对代码进行集中统一管理,可以方便查看新增或删除的文件,能够跟踪所有代码改动痕迹。可以随意恢复到以前任意一个历史版本。并避免了因为版本不同引入的深层BUG。
二、 完善的冲突解决方案,可以方便的解决文件冲突问题,而不需要借助其它的文件比较工具和手工的粘贴复制。
三、 代码权限的管理。可以为不同的用户设置不同的权限。可以设置访问用户的密码、只读、修改等权限,而且通过CVS ROOT目录下的脚本,提供了相应功能扩充的接口,不但可以完成精细的权限控制,还能完成更加个性化的功能。
四、 支持方便的版本发布和分支功能。

基本概念
资源库(Repository)

CVS的资源库存储全部的版本控制下的文件copy,通常不容许直接访问,只能通过cvs命令,获得一份本地copy,改动后再check in(commit)回资源库。而资源库通常为与工作目录分离的。CVS通过多种方式访问资源库。每种方法有不同目录表示形式。
版本(Revision)
每一个文件的各个版本都不相同,形如1.1, 1.2.1,一般1.1是该文件的第一个revision,后面的一个将自动增加最右面的一个整数,比如1.2, 1.3, 1.4...有时候会出现1.3.2.2,原因见后。revision总是偶数个数字。一般情况下将revision看作时CVS自己内部的一个编号,而tag则可以标志用户的特定信息。
标签(Tag)
用符号化的表示方法标志文件特定revision的信息。通常不需要对某一个孤立的文件作tag,而是对所有文件同时作一个tag,以后用户可以仅向特定tag的文件提交或者checkout。另外一个作用是在发布软件的时候表示哪些文件及其哪个版本是可用的;各文件不同revision可以包括在一个tag中。如果命名一个已存在的tag默认将不会覆盖原来的;
分支(Branch)
当用户修改一个branch时不会对另外的branch产生任何影响。可以在适当的时候通过合并的方法将两个版本合起来;branch总是在当前revision后面加上一个偶数整数(从2开始,到0结束),所以branch总是奇数个数字,比如1.2后面branch为1.2.2,该分支下revision可能为1.2.2.1,1.2.2.2,...
冲突(Conflct)
完全是纯文本的冲突,不包含逻辑上的矛盾。一般是一份文件,A做了改动,B在A提交之前也做了改动,这样最后谁commit就会出现冲突,需要手工解决冲突再提交。

CVS与eclipse集成开发
  前面对CVS的历史、功能、概论等理论知识做了介绍。下面我们将使用最流行的Java IDE Eclipse中内置的CVS工具,以一个完整开发流程,介绍实际环境中CVS的正确使用。关于CVS系统的安装,不是本文的内容,您可以从附录的链接中获取安装的介绍资料。

常用的CVS控制命令
Check Out(检出)
把源文件从cvs源代码仓库中取出,缺省的版本是最新的版本,你也可以选择指定的版本。在每次更改源代码之前,需要Check Out最新的版本,再起基础之上对源代码进行修改。将代码目录checkout到指定目录下,所有文件都是read-write。
Check In(检入)
把源代码加入到cvs源代码仓库中,每一个添加进代码库中的文件的版本是 1.1。以后每次修改文件重新ci以后,此文件的版本递增为1.2 ,1.3.……。在每次对源代码修改之后,需要Check In,提交最新版本的源代码。
Synchronize with Repository(与资源库同步,简称同步)
使本地更改与资源库同步,它会列出本地和资源库之间不同的所有文件。
Add to Version Control
将新的文件加入到版本控制之中。
Add to .cvsIgnore
将文件设置到版本控制之外,这样该文件或目录中的文件的更改在CVS中不可见,即使同步也无法发现。

CVS正确使用步骤
一、 同步(Synchronize)

就是将本地更改与服务器同步,同步之后可以清晰的看到上一捡出(Check Out)版本之后本地、服务器上的最新改动。这是非常有用的,特别是敏捷开发,强调集体拥有代码。有了同步功能,你可以全局把握项目的代码,可以很方便的跟踪公共模块代码的任何改动。
具体操作:在Eclipse的资源视图(Resource Perspective)或者Java视图(Java Perspective)中,选中要同步的目录,点击右键选择"Synchronize with Repository",之后它将显示同步的视图。如下图:
 
(图一、CVS同步视图)
同步之后,它有四种Mode可以选择,见上图绿色框框里按钮。从做到右分别为:
Incoming Mode:表示修改是来自服务器,对应于更新(update)操作。
Outgoing Mode:表示修改是来自本地,对应提交(commit)操作。
Incoming/ Outgoing Mode:本地和服务器修改都在该模式(Mode)中显示。
Conflicts Mode:显示本地和服务器修改的冲突文件。
二、 更新(update)
比较简单,选择Incoming Mode,再选中要更新的文件,右键选择update操作。
三、 解决冲突并合并(solve conflct and merge)
如果有冲突文件,冲突文件不能更新。你必须先解决冲突再操作。选中冲突的文件,再点右键选择"Open in Compare Editor",用比较工具打开该文件。如下图:

(图二、CVS比较器视图)

比较器(Compare)视图,左边版本底的是本地文件(Local File),右边是远程服务器文件(Remote File)。使用"Select Next Change"按钮(绿框中的第一箭头向下按钮),逐一查看不同点。如果不同点标识为黑色框框,则不用管它。如果是蓝色框框,则需要手工调整。如上图,不同点是蓝色框框,将鼠标放到两个不同点的中间小方框中,则凸出一个向右的按钮,并显示提示信息"Copy Current Change from Right to Left",意思是将右边服务器的不同点覆盖到左边的本地文件。点中此按钮。重复这样的操作,将所有服务器上的更改拷贝到本地。
如果有一行代码,本地和服务器都同时做了修改。这时,修改点则显示红色框框。这时,你就必须手工做正确的修改。全部修改完成,保存本地文件。
此时,如果修改点没有了蓝色的框框,就可以开始做合并(merge)操作了。操作也很简单,选择该文件,点击右键,选择"Mark as merged"。
注意:必须确保没有蓝色框框,即完全拷贝了服务器的修改才可以做合并(merge)操作,否则会覆盖服务器上的代码。
四、 提交(commit)
更新服务器代码,解决冲突之后,首先要查看本地文件修改之后是否有错误。如果有,当然首先解决错误,再提交。

附录:
http://www.8848software.com/scmchina/scmtools.htm 由很多版本控制工具的文档链接。
http://www.perforce.com/perforce/reviews.html Infrastructure Group对Perforce 和Clearcase, CVS, PVCS,Visual SourceSafe (VSS)几种CM工具进行了定量和定性的比较. 对于定性的比较,内容涉及工具支持的方法和环境;对于定量的比较,包括在不同的项目规模上,执行不同的活动所需要的时间。

版权声明:CSDN是本Blog托管服务提供商。如本文牵涉版权问题,CSDN不承担相关责任,请版权拥有者直接与文章作者联系解决。

[点击此处收藏本文]

发表于 2005年01月19日 9:53 AM

评论

# 分支(Branch)的使用 2005-01-19 10:41 AM moxie
欢迎大家在这里讨论CVS在eclipse中的使用技巧:
分支(Branch)的使用。在我们的CVS基本概论中介绍了分支。我们一个项目可以有多个分支,一个分支修改不对其它分支有任何影响。
假如有一个UM(统一用户管理)项目,这是一个通用的用户管理系统,但我们具体项目比如:财政管理,对用户管理有一些特别的业务需求。这时候,就可以创建一个财政管理UM的分支。添加它自身的业务功能。同时可以与主线的代码进行比较(Compare)、合并(merge)。

# 回复:版本控制工具 2005-01-19 10:09 PM ZoRRo.X
我用过wincvs,感觉很难用。我用jbuilder,感觉很好用。我用过eclipse,感觉不习惯。就这么多,谢谢!

# 回复:版本控制工具 2005-01-19 11:53 PM XiGuaDao
现在还有一个叫做subversion的也是版本控制工具,很有取代cvs的工具,特别是提供了cvs没有的对文件夹目录的版本控制功能,很不错的,值得研究

# 回复:版本控制工具 2005-01-20 10:01 AM graydom
谢谢提供资料
CM方面的东西是开展工作的前提和基础

# 回复:版本控制工具 2005-01-20 10:21 AM moxie
Subversion从功能方面来说,也许确实要比CVS强大。但不要忘记,CVS早已抢先占有了大量的市场,特别是在开源的领域。这个,我认为是Subversion很难达到的。而且,工具够用就行了,不是吗?

# 回复:版本控制工具 2005-01-21 12:08 AM earthharp
p4s
the best

# 回复:版本控制工具 2005-01-21 1:49 PM ibeyond
现在代码管理我使用cvs。
文档管理我使用subversion,觉得都还不错。

# 回复:版本控制工具 2005-01-21 2:33 PM yayv
subversion和cvs同出一个作者之手,而且有cvs2svn的仓库转换工具,从cvs向subversion的转换没有任何障碍。

而且subversion还弥补了cvs的众多不足,有兴趣可以去看看

# 回复:版本控制工具 2005-01-22 10:38 AM dddd
废话,

# 回复:版本控制工具 2005-01-23 8:42 PM michael
楼主说STARTEAM不支持并行开发,我想实在是对StarTeam没有好好了解的缘故。

# 回复:版本控制工具 2005-01-23 10:51 PM NetCobra
恐怕现在除了VSS都支持并行开发了吧?

单就功能来说,Subversion 比起 CVS 还是要多了一些东西的,有些还是不错的;至于“市场”,还是要看需求,现在已经有一些开元软件在使用 Subversion 了。

觉得 WinCVS 不好用的,可以试试 TortoiseCVS,这是一个完全与资源管理器集成的 CVS 工具,比较符合 Windows 使用者的思路,很容易上手;主页是 http://tortoisecvs.sourceforge.net。

对于 Subversion,也有相似的工具 TortoiseSVN,使用方法几乎完全相同,主页是http://tortoisesvn.tigris.org。

# 回复:版本控制工具 2005-01-24 1:13 AM eric
VSS也支持并行开发的,不过VSS的缺省设置是禁止“两个人check out”。
只要改一下VSS的设置就可以了。

VSS的最大缺点也许是不支持Internet,不过如果只在局域网里面使用,我觉得VSS在易用性、方便性方面有优势。

# 回复:版本控制工具 2005-01-24 12:48 PM sydongsun (www.askguoyu.com)
视频入门学习资料下载:
http://www.askguoyu.com/cm/cvs1.htm

# 回复:版本控制工具 2005-01-24 12:50 PM sydongsun (www.askguoyu.com)
同样,网站上也提供了其他关于软件配置管理工具的部分学习资料下载:
参考:http://www.askguoyu.com

# 回复:版本控制工具 2005-01-24 5:25 PM moxie
感谢michael的指正,是我弄错了。仔细查了文档,STARTEAM支持并行开发。再次向michael表示感谢。

# 回复:版本控制工具 2005-01-24 5:30 PM moxie
版本控制工具与开发工具的集成,也是衡量版本控制工具的一个标准,特别是代码的版本控制。VSS主要是与微软的开发工具无缝集成,但拿到别的开发工具上使用,就很麻烦了。

# 回复:版本控制工具 2005-01-27 7:30 PM 老康
你的图片呢?

# 版本控制工具 2005-01-27 8:47 PM whiteeagle
Ping Back来自:blog.csdn.net

# 回复:版本控制工具 2005-01-28 7:43 PM 非凡
to NetCobra :
VSS在分支、合并方面也做得不太好。

# 回复:版本控制工具 2005-01-30 10:24 PM huitiansou
我一直用Visual SourceSafe(VSS)
换过三家公司用的都是Visual SourceSafe(VSS)

# 回复:版本控制工具 2005-01-30 11:47 PM Arbow
怎么moxie大人放了那么多“硬盘图”上去??

# 回复:版本控制工具 2005-02-01 3:37 PM 放飞自己
现在好象还有一个firefly,不知道谁用过呢?看网上的介绍似乎很不错的喔,不知道哪里有的下载呢?俺也想找个玩玩

# 回复:版本控制工具 2005-02-01 4:24 PM lunar
我使用cvs,但是经常会发生冲突或者提交不上去或者更新不下来的现象,挺烦人的。

# 回复:版本控制工具 2005-02-01 10:12 PM nomagic
我用过CVS,很不好用,会产生很多临时文件夹杂在原代码文件中。我用过starteam,很好用,管理起来并不复杂。

# 回复:版本控制工具 2005-02-02 8:47 PM 杨过
怎么没有svn啊???? 晕!!!!!!!!!!
我们用的是SVN

# 回复:版本控制工具 2005-02-04 10:21 AM smithredsun
联系电话:010-82645151
详情参见:http://www.f c s o f t.com.cn
什么是eform开发平台?
eform是基于浏览器的表单自定义工具,eform是页面设计工具,eform内含大量构件.不用写一行代码便能用eform开发出来常见的功能点.

使用eForm平台有如下好处:
1、用eform平台开发能降低开发人员的技术门槛,使很低水平的人就能开发一个软件项目中常见的功能.例如数据库的数据增删改查打印等等,而这部分功能往往也占居了一个软件项目的大部分.这样一个软件项目开发成员中可以有一大部分人是中专生甚至是高中生就能胜任.从而大大降低了整个软件项目的开发成本.另一方面因为低水平的开发人员很容易招聘到,这样也使软件项目更加容易完成.

2、用eform平台开发的代码一致性比较好,以后维护升级方便.因为只有个性化的功能才需要编写事件代码.所以代码量很少,大量的调用底层的代码,这样代码的集成度高.以后维护升级时修改的代码量非常少.

3、用eform平台开发能大大提高开发效率.eform平台采用对常见的功能和控件内置的方法,使得开发一些常见的功能(如数据库的增删改查,树控件,表格控件)非常容易方便.几乎不用写一行代码.直接通过控件的拖拉然后再设置属性和事件即可完成.开发程序的工作就象是打字员的工作一样.(如图所示开发效率对比示意图)

4、用eform平台开发能很好地应对软件开发项目成员的流动的问题.因为程序员的离职而造成整个项目瘫痪的事例很多.而用eform平台,因为大家都是采用同一模式开发的表单,因而一个人开发的表单很容易被另一个人看懂和使用.这样就使开发人员的流动造成的影响大大降低.企业不再受制于人.
5、用eform平台开发可以使项目不再没完没了,无法关闭.因为可以培训最终用户中的精英,让他们掌握eform平台的使用方法,这样大多需求他们便可以自己做好,而不用麻烦软件开发商了.

eform的设计思路是将数据库程序开发中常用的控制或功能点在eform平台中设计好,通过简单的设置参数或属性即可调用.而遇到很个性化的功能点则可以用传统的代码方式进行开发.因为一个数据库程序开发中大量是增,删,改,查,打印,报表,图表,数据校验等常见的功能点,而这些功能点在eform平台中都做好了,只要简单地设置一下即可完成这些功能点,而且这个设置过程也是可视化的,有相应的设置界面.这样做这些常见的功能点就非常简单快速.而少量的特别的功能点又可通过写代码的方式来完成.也就是说在一张表单中可以一部分功能是直接通过简单的设置一下来完成,另一部分功能是用代码来硬写出来的.这样就达到了常见的功能可以直接调用eform底层的api来实现以提高开发效率,但一个表单又不限定只能实现这些常见功能,你也可随意地用代码来进行无限扩充.这样就达到了既提高了开发效率又能实现很复杂的功能.
eform开发平台分为eform.j2ee和eform.net两个版本.eform.j2ee是用java编写的,面向j2ee应用.eform.net是用.net编写的,面向.net应用.实际上整个eform开发平台共有三部分的代码,① 一部分是htc js dhtml等前台的代码,② 一部分是java的代码,③ 一部分是.net的代码(c#语言的),其中java的代码完成的功能和.net的代码完成的功能完全相同.用①和②就组成了eform.j2ee版本,用① 和③ 就组成了eform.net.这样就得到了两个版本.由此可知,eform.j2ee和eform.net的接口和操作是完全相同的.只是运行环境和使用的编程语句不同罢了.这样做的好处是当需要从j2ee平台转到.net平台或是从.net平台转到j2ee的平台时,使用eform编写的表单和程序可以完全保留下来直接使用.可以轻松地跨越当今两大主流的开发平台.
使用eform开发平台开发出来的表单可以直接在浏览器中运行,不但如此,而且其设计工具也是在浏览器中运行的.也就是说,开发人员也是在IE中(拖拉控件)开发的.开发人员再也不用为了搭建开发环境而装一大堆软件了,这一点对于远程协作开发非常有利.
eform内置了常见的大量的开发构件,如树控件,表格,图表控件,打印控件,上传控件,查询等,也内置了象单表输入,一对多表输入等常见的数据库程序的功能点.通过使用这些可以大大提高开发的速度,降低开发这些常见功能的门槛,只需知道很少的知识便可以开发.使用eform生成的表单结构和格式一致,非常便于以后的维护升级.
eform开发平台开发出来的表单可以脱离eform平台单独运行,也很容易和其它程序进行集成.一个项目的程序往往是大量常用功能用eform平台开发,而少量功能用其它方式开发.然后把它们集成在一起而成的.
eform开发平台是专门为软件开发商或需要开发数据库程序的人而设计的.它采用开放版权的销售方式.对于用户开放100%的源代码,也就是说将eform开发平台的源代码全部提供给用户,同时还包括相应的开发文档和典型示例都提供给用户,而且用户用eform开发平台开发出来的程序可以自由分发.用户购买了eform后,就相当于eform是自己开发出来的一样.而且北京方成公司还提供一年的免费服务和技术支持.
eform的销售没有任何加密和license之说.是一种特别的销售方式.销售的过程实际上是完成知识和价值的转移的过程.相当于方成公司帮用户开发了一个平台然后再帮助用户把它使用起来,用户使用eform开发的软件可以自由销售,和方成公司没有任何关系,更不需要再收费用.由此可见,购买eform和自已招聘员工开发一个平台相比,无论是时间还是费用以及风险都是购买eform比较合算.

# winxp下运行CVS出现的问题 2005-02-04 4:54 PM wsmyf
系统:winxp;
中安装完成WINCVS后运行,总是提示需要安装PYTHON,但是安装之后依然不能够运行,不知道为什么?

# 回复:版本控制工具 2005-02-13 2:46 PM piggybank
这么多年来习惯了 VSS
除了在产品开发过程中用 ClearCase 多一些(缺陷、配置等),在公司用 VSS,自己笔记本和家里机器上也是 VSS。

VSS 也支持并发和分支,只是默认设置关闭了。
eric 说得对,个人感觉,小团队开发 VSS 足够了。

至于 Internet 方面的不足(VSS基于文件共享的方式很不安全),以前 MSDN 宇宙版中带的 VisualStudio98/VB6 第二张光盘中有一个VSSServer,可惜我没试过,不知道效果如何。但后来没有下文了,看样子也不行吧。

朋友推荐了 StarTeam,但使用起来太复杂了,呵呵。
最近在试用 Vault SourceGear——下载过 .Text 源代码的朋友应该接触过这东东,号称是前 VSS 产品经理离开微软后开发的一个产品。基于 WebService,支持 Internet,完全兼容 VSS——比如与 IDE 的集成。
下载使用了一段时间,感觉不错。准备在节后在我的产品组里小范围推广一下,如果可以的话打算建议公司购买 License 正式使用——这样,回家后就不用在断开方式下工作,也不必担心服务器共享权限的问题了

唯一的小问题是:在还没有全部转向VGS之前,当在 VSS 和 Vault SourceGear 之间切换(例如不同的 Solution 采用了不同的版本控制。VGS提供了转换工具将VSS中的东东导出)比较麻烦——所以考虑写一个小程序来转发命令行参数(这样就可以让使用者自行选择)来解决这一问题。毕竟,VS/VS.net/JBuilder等与之的调用接口都是基于命令行参数的。
呵呵,有经验的朋友不妨一起讨论讨论如何解决。说不定已经有人写过了,还省了我们的事情,呵呵

我装了一个VGS,目前版本的 WebClient 功能还比较弱:
http://vault.xiaozhu.com/VaultService/ 有兴趣的朋友可以试试看,我开了只读的 Guest 帐号(无密码)和 Visitor 帐号(密码:xiaozhu)。下载安装客户端后可以连上来试试看。
如果希望恢复自己机器上的 IDE 中的默认版本控制软件为 VSS,只需要运行 VSS/Win32/SSInst.exe 即可。

# 回复:版本控制工具 2005-02-14 12:47 AM perforcer
我使用perforce,在家里,公司都用。 我觉得在没有版本控制的环境中写代码非常的不舒服, 严重缺乏安全感。 毕竟每一行代码都是自己的心血积累。 而且当发现自己的开发误入歧途时,没有版本控制将是灾难性的!

# 回复:版本控制工具 2005-02-15 8:15 PM SteveGYCN
VSS有一个支持Internet的第三方工具,可以从MS的VSS网站获得地址,如果是小团队开发,VSS还是可以使用的,功能够用了,如果是小型团队,同时需要支持Internet版本控制,可以考虑使用VPN来做文件共享,VSS是基于文件共享协议的,而且目前的VSS支持Unicode文本文件还有一些问题,如果项目中有使用到Unicode编码的源码文件,最好手工设置那些文件为二进制格式,MS后一个版本控制软件,可能会随VS2005一同发布。
我们大量使用CVS,主要是需要在不同地点的两个团队进行协同开发,直接使用CVS的Server工作方式。感觉最讨厌的问题是文件格式,必须清楚地决定需要加入管理的是什么类型的文件,二进制和文本文件最好不要搞错,否则根本没有办法纠正过来。在这一点上,SVN还是非常不错的。现在,我们已经开始迁移到SVN上了,比CVS的改进还是很明显的。

抱歉!评论已关闭.