惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
F
Fortinet All Blogs
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
小众软件
小众软件
有赞技术团队
有赞技术团队
雷峰网
雷峰网
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
AWS News Blog
AWS News Blog
C
Cisco Blogs
美团技术团队
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
人人都是产品经理
人人都是产品经理
宝玉的分享
宝玉的分享
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
W
WeLiveSecurity
D
DataBreaches.Net
博客园 - 司徒正美
Blog — PlanetScale
Blog — PlanetScale
IT之家
IT之家
云风的 BLOG
云风的 BLOG
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Simon Willison's Weblog
Simon Willison's Weblog
Google DeepMind News
Google DeepMind News
T
The Blog of Author Tim Ferriss
Know Your Adversary
Know Your Adversary
NISL@THU
NISL@THU
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
Vercel News
Vercel News
月光博客
月光博客
T
Tailwind CSS Blog
H
Help Net Security
aimingoo的专栏
aimingoo的专栏
P
Proofpoint News Feed
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Spread Privacy
Spread Privacy
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cisco Talos Blog
Cisco Talos Blog
Microsoft Security Blog
Microsoft Security Blog
V
V2EX
WordPress大学
WordPress大学
Cyberwarzone
Cyberwarzone
Recent Announcements
Recent Announcements

博客园 - EWang

如何在MS Project中进行挣值分析 - EWang - 博客园 API函数大全 - EWang - 博客园 SN大全 - EWang - 博客园 SQL INNER JOIN/OUTER JOIN - EWang Java中iText使用技巧 - EWang - 博客园 Linux下时间的修改 - EWang - 博客园 Asp.net调试的一些问题 - EWang - 博客园 SQL字符串处理函数大全 - EWang - 博客园 crontab 格式 - EWang - 博客园 SQL 函数 函数大全 - EWang c# ToString() 格式化字符串 - EWang 常用CSS样式 - EWang - 博客园 GridView空间的DataFormatString - EWang - 博客园 asp.net 学习资源列表 - EWang - 博客园 (转)Visual Studio .NET已检测到指定的WEB服务运行的不是ASP.NET 1.1版。你将无法运行ASP.NET WEB应用程序或服务 - EWang 一个困扰我半天的问题解决了,java环境真的很难配置 - EWang - 博客园 Liunx下常用程序(转) - EWang - 博客园 liunx下的一些常用命令 - EWang - 博客园 Eclipse 运行命令行参数大全 - EWang - 博客园
Bugzilla, CVS, ClearQuest, ClearCase安装心得(转) - EWang
EWang · 2008-08-28 · via 博客园 - EWang

我的体会是,对于一个软件团队,在最坏最坏的情况下,也应该有源代码管理和Bug管理的工具。除非这个团队完全搞原始作坊模式,否则,第一个应该添置的就是这两个工具(集成开发环境不在此列)。

也有很多资料和文章把这两个东西混在一起将,都讲成配置管理工具。当然,这种说法,相当于把变更管理也纳入配置管理的一部分了,这也是可以的。我们可以不必追究这种terminology上的细微区别。

source control和bug tracking,市场上的工具至少有十几种,如果按照价格划分,基本可以分成三挡:高端,中层,低端。

高端的产品,基本上价格是几万以上,例如Rational的ClearCase(做source control的)和ClearQuest(做bug tracking)的
中层的产品,基本上价格是几千到几万,例如微软的VSS(做source control的)和微创的BMS XP(做bug tracking)的
低端的产品,基本上免费或接近免费,例如CVS(做source control的)和Bugzilla(做bug tracking)的

此外,还有PVCS的一套source control的,CA(就是冠群)也有一个source control的,还有很多commercial的bug tracking tool,都定位在中层。

-------------------
说完这些,就可以说安装了。rational的产品到底是不是很难安装?open source的东西是不是很难安装?入门要多少时间?这些问题恐怕要做过一遍才知道。

前两个礼拜我把rational的两个产品和open source的两个产品都安装和基本适用了一下,下面写一些随意的心得,给大家参考。这只是一些心得,而不是安装指南。

!!! 请注意,看着我写的这些东西,是不可能完成安装的。但如果在安装之前或者安装过程中看一眼,多多少少会有些启发,少走一些弯路,至少能对前途有些信心。

要说明的是,我原先对vss和bms xp都已经有实际经验了。有没有同类产品的经验,对学习新产品所需要的时间影响很大。

#################
# Bugzilla: #
#################

安装难度:中等
技术要求:linux基本操作 & Apache
安装用时:一天
网上资源:多,但以英文为主

有大概三分之一的时间用来手工安装他所需要的各种perl库。这些库都没有包含在bugzilla-<version>.tar.gz里面,bugzilla网站也没有,不爽。不过在线帮助里面提供了连接,慢慢来一步步也能装好。比较好的一点是,bugzilla的tar.gz里面带了checksetup.pl,能够检查需要安装的perl库有没有装好,版本是不是符合要求。这种检查工具对于我这种perl低手来说,很方便。

然后,有超过一般的时间用来配置apache。主要的问题处在文件权限。创建好alias,写好directory的属性,然后再浏览器里面打开http://localhost/bugzilla,就得到一个HTTP 403错误。死活高不定,网上查了无数资料,尝试了很多方法。最后解决的方法是用了chmod --recursive 777 *,把所有文件都rwxrwxrwx了,也就没有权限问题了。

数据库方面倒没什么大问题。只不过在redhat 9.0上面,mysql不会自动启动,要手工运行/etc/init.d/mysql start。不过创建bug数据库等都很方便的,按照安装说明的步骤添加用户什么也都满方便的。安装完以后,还可以用admin身份在web界面里面修改各种配置。

另外,比较不爽的一点是,bugzilla在web界面上注册新用户以后,密码是通过email发送的。我没有配sendmail,结果只能用admin进去去修改新用户的密码,然后在人工通知新用户。

######################
# CVS for Linux #
######################

安装难度:中等
技术要求:linux基本操作
安装用时:4小时
网上资源:多,中英文都有

有一篇参考文献非常好:http://www.chedong.com/tech/cvs_card.html。建议每个新上手的都看一看。

CVS的第一个麻烦在于服务器的安装。很多文档(包括上面的那片文献)里面都没有提到服务器怎么安装,都只讲了初始化cvs init。其实,这只是初始化CVS的repository(相当于代码仓库的概念)。仅仅靠这些,远程客户端是无法连接到服务器的。

服务器的安装需要配置xinet.d。需要在conf里面加上cvspserver 2401 tcp,并启动/etc/init.d/xinetd(这是在Redhat 9.0上的,其他版本需要查网上资料)。这样,cvs服务器才算配好,服务器会在2401以pserver协议侦听,负责用户身份验证以及其他功能。除了pserver以外,还可以通过ssh等其他协议,当然,配置方法是类似的,但一定要配置。

CVS服务器的配置可以参考这本中文书:CVS和Nightly Build技术。这本书在新风雨有卖,URL是http://www.cnforyou.com/query/bookdetail.asp?viBookCode=7501。这本书第2章 “CVS安装和权限配置”相当详尽,基本上把改讲的都讲清楚了,只需要再查少许google,再加上少许Linux的基本操作技能,就能把CVS服务器搞定了。

顺便说一下,《CVS和Nightly Build技术》这本书的第二章有一个很致命的错误:第16页倒数第三行应该是“server_args = -f --allow-root=/src/master pserver”。原文误作“server_args = -f -allow root=/src/master pserver”,漏掉两个减号。

CVS的客户端WinCVS也相当麻烦,用户界面很不友好,不愧为open source的产品。例如,
1)任何操作如果成功,返回的结果总是“***** CVS exited normally with code 0 *****”,让人很迷惑,即便他说了"exited normally"。
2)无法像ViewCVS里面那样看到服务器上的代码库全貌。而VSS和ClearCase都可以。
3)如果服务器是CVSNT,在图形化登录框中目录要指定为"c:\cvsrepro",而在command line窗口中要指定为“c:\\\cvsrepro”
这只是几个典型的不爽的地方。open source的东西再一次表现出易用性差的问题。

另外有个东西叫做ViewCVS,是另外一棒人开发的一个cvs的web界面,相当好装,只要把tar.gz解开,在apache里面创建好虚目录,然后修改一下ViewCVS自己的配置文件就可以了。15分钟搞定。

################
# CVSNT #
################

安装难度:低
技术要求:Windows基本操作
安装用时:2小时
网上资源:多,中英文都有

都传说CVSNT难以安装,难以配置,可是我的感觉完全不是这样。我是装在windows 2000 pro上的,安装文件是一个installshield,安装好了以后,cvs服务器被装成一个nt service,管理界面从开始菜单或者控制面板都可以进去。权限管理用local用户帐号或者domain用户,没什么需要配置的。CVS Repository可以在管理界面里面跟着wizard生成,几步点完就搞定了。当然,也有可能因为我先装的cvs for linux和wincvs,对cvs的一套概念都熟悉了,所以装cvsnt快了很多。

###########################
# Rational ClearQuest #
###########################

安装难度:中等
技术要求:Windows基本操作,关系数据库的基本操作
安装用时:一天
网上资源:少,中文几乎没有

先声明一下,我装的rational的产品,用的都是我们公司买的license,不过都是nodelock的,所以就不要来问我索要crack或者floating license什么的了。

安装ClearQuest,强烈建议把这片文档作为安装和基本操作参考:http://www.8848software.com/scmchina/doc/rationalcqug.pdf。这是我能找到的最好的中文材料。这片文档让我有一种拨云见雾的感觉。

ClearQuest最大的问题是服务器的配置概念不清晰,给人感觉很乱,易用性差。比如,服务器配置程序它叫做"ClearQuest Maintenance Tool"——其实,应该叫做Admin Console或者Server Admin之类的,就一目了然了。

按照我最初的理解,ClearQuest应该是完全的Client/Server结构,Server端的服务进程会在某几个端口上和Client通信。Client端只需要配制服务器的地址和端口就可以了(其实,BMS XP就是这样做的,这样的概念非常清晰)。但后来我发现,并非如此!ClearQuest其实根本没有这真正意义上的服务器程序。例如,在BMS XP中客户端登录时,服务器上所有bug database列表都是从服务器上通过Remoting的RPC获取的;而在ClearQuest中,服务器上的bug database列表是通过由客户端直接访问服务器上一个共享的数据库得到的,例如一个共享的Access数据库的mdb文件。

ClearQuest的这种client/server设计给我一开始的安装和配置带来了很大的困惑。

当然,这里我并不是说BMS XP比ClearQuest好,但是至少在体系结构上,比ClearQuest清晰很多,容易理解。

说说安装步骤吧,先是装服务器,安装好以后先要运行Rational ClearQuest Maintenance Tool来创建Schema Repository(相当于一个元数据库),然后再在ClearQuest Designer里面添加和维护bug database(这个入口如果没有告诉你、不看手册,自己找根本不可能一下子找到,易用性一塌糊涂)。

然后是客户端,客户端也要先运行Rational ClearQuest Maintenance Tool,连上刚才创建的那个Schema Repository。然后再运行真正的Rational ClearQuest,选择数据库,登录。进去以后,就是典型的Bug tracking system了,可以查询,登记新bug,看报表,操作bug等等。ClearQuest的过人之处在于Designer很强大,对field的定制很强,报表功能很强,与ClearCase、VSS等可以集成。至于基本的bug tracking功能,也就和大部分的产品差不多啦。本来嘛,bug tracking就这么点花样。

从安装ClearQuest我体会到,Rational的产品的易用性差果然不是吹的。怪不得可以卖这么贵,怪不得培训也这么贵,怪不得会用rational产品的人的工资这么高,怪不得用了rational的公司那么神气,唉。

大家不要扔搬砖,我说的是肺腑之言。Linux难用,所以linux/unix的sys admin比win2000的sys admin吃香。Rational大致也有这个味道。

##########################
# Rational ClearCase #
##########################

安装难度:难
技术要求:Windows基本操作
安装用时:四天
网上资源:少,中文几乎没有

几点忠告:
1)不要轻易使用ClearCase,哪怕你已经用了很多Rational产品。CVS是很好的源代码管理工具,150人以下都没问题;VSS也对30人以下团队很适合。除非你有无法解决但又一定要解决的问题,例如multi-site,例如你希望能对目录结构也作版本控制,例如你要全面上马Rational的SCM理论,否则不要用clearcase。
2)在开始安装ClearCase之前,最好先好好把VSS和CVS用用熟。尤其是VSS。VSS几乎可以说是ClearCase的简化版本,很多term都很像,很多概念都很像。相比之下,CVS倒更像微软内部使用的Source Depot。举个例子,cvs可以直接在客户端编辑文件,然后commit。在编辑之前不需要从服务器上获取编辑权限。而vss和clearcase在编辑客户端文件之前,都需要从服务器检出(check-out),编辑完以后再检入(check-in)。
3)有了VSS的基础以后,在开始安装之前,仔细的读一遍《软件配置管理策略与Rational ClearCase》的第一到第五章。看不懂就反复看,“文读千遍,其意自现"。这部分内容相当于是准备知识。这本书在http://www.cnblogs.com/andy2005/admin/www.cnforyou.com也有卖的。

现在可以开始安装了。强烈建议参考这篇:http://www.8848software.com/scmchina/doc/rationalcclt.pdf。同样,对于ClearCase来说,这是我能找到的最好的中文材料。这片文档让我有一种拨云见雾的感觉。

说实话,在安装ClearCase所用的四天时间里,有三天是在上面那本书、在理解clearcase里面各种复杂的概念。在最后一天,我安装了ClearCase的服务器和客户端,并摸了一遍他的源代码管理功能。至于clearcase里面和项目有关的那些功能,我没有碰,我想这对于我没用,对很多100人以下的中国软件企业也没用。即便遇到针对性的问题,也有很多其他的方法可以解决。没听说微软用clearcase,但那么多几十万几百万几千万行代码的产品也都开发出来了。劳动人民自然有劳动人民的方法。

简单来说,ClearCase服务器上配置源代码管理主要步骤是:
1)运行Server Setup Wizard。它能帮你创建一个project VOB。没有project VOB,你是无法在administration console里面创建其他VOB的
2)然后就是一个个创建VOB了,可以在admin console里面创建,也可以用"Create VOB"向导
还是满简单的。然后运行客户端,直接指定服务器名字,连上去,然后选择所需的VOB,创建本地工作目录并下载代码就可以了。后面的使用和VSS很像。

比较好的一点是,起码clearcase的server/client结构比clearquest清晰。

一句话,我痛恨ClearCase。

ClearCase搞了很多术语。这些术语,如果光看字面,你根本猜不透这个术语是什么意思。但如果你仔细研究一下,就会发现,这些术语所对应的概念,其实在cvs和vss里面都已经有了,都是满基本的概念。例如,基线就是vss里面的做标签;“基于活动的SCM”就是把ClearQuest里面的bug修复、DCR(design change request)等和多个check-in联系起来;“审计”的概念其实差不多就是VSS里面Show History时看到的那些信息;VOB就是CVS里面的Repository;工作空间以及快照视图就是VSS里面的Working Folder;构建审计其实就是记录了Daily Build中每个Build对应的每个源代码文件的版本;......

我觉得这些术语人为的设置了理解的障碍。软件工程的目的是为了提高软件开发的效率和质量,工具的只是对软件工程方法的一种辅助或者强制实现。没有必要在工具的用语以及背后搞这么玄乎的术语。如果按照Rational的套路,我也可以来创造一些玄乎的术语,或者下一个让人乍一看摸不着头脑的定义:“基线就是软件配置项版本空间中的矢量” :)

补充一下价格。

Rational的产品价格好像不公开报价的,都要到代理商那里去查询的。不过在google上还是能找到一些线索,有一些软件公司的产品选型报告里面列了一些价格信息:

ClearCase, floating license, 每个license卖3000美元,外加技术支持服务600美元。如果买50个,总价180,000美元,打掉21,000美元折扣,共159,000美元(130万RMB,tnnd)

ClearQuest,floating license,三个license的价钱是8380.29美元。

以上信息仅供参考,不一定准确