CVS使用手册作者: 车东 Email: chedongATbigfoot.com/chedongATchedong.com 写于:2002/07/10 最后更新: 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 关键词:CVS CVSWeb CVSTrac WinCVS CVSROOT 内容摘要: CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。工作模式如下: CVS服务器(文件版本库) 作为一般开发人员挑选2,6看就可以了,CVS的管理员则更需要懂的更多一些,最后还简单介绍了一些Windows下的cvs客户端使用,CVS远程用户认证的选择及与BUG跟踪系统等开发环境的集成问题。
一个系统20%的功能往往能够满足80%的需求,CVS也不例外,以下是CVS最常用的功能,可能还不到它全部命令选项的20%,作为一般开发人员平时会用cvs update和cvs commit就够了,更多的需求在实际应用过程中自然会出现,不时回头看看相关文档经常有意外的收获。 CVS环境初始化环境设置:指定CVS库的路径CVSROOTtcsh 后面还提到远程CVS服务器的设置: 一个项目的首次导入 项目导出:将代码从CVS库里导出 CVS的日常使用注意:第一次导出以后,就不是通过cvs checkout来同步文件了,而是要进入刚才cvs checkout project_name导出的project_name目录下进行具体文件的版本同步(添加,修改,删除)操作。 将文件同步到最新的版本 确认修改写入到CVS库里 注意:CVS的很多动作都是通过cvs commit进行最后确认并修改的,最好每次只修改一个文件。在确认的前,还需要用户填写修改注释,以帮助其他开发人员了解修改的原因。如果不用写-m "comments"而直接确认`cvs commit file_name` 的话,cvs会自动调用系统缺省的文字编辑器(一般是vi)要求你写入注释。 如果关键词替换属性在首次导入时设置错了怎么办? 删除文件 添加目录 正确的通过CVS恢复旧版本的方法: 移动文件/文件重命名 删除/移动目录 项目发布导出不带CVS目录的源文件 CVS Branch:项目多分支同步开发确认版本里程碑:多个文件各自版本号不一样,项目到一定阶段,可以给所有文件统一指定一个阶段里程碑版本号,方便以后按照这个阶段里程碑版本号导出项目,同时也是项目的多个分支开发的基础。cvs tag release_1_0 开始一个新的里程碑: 注意:CVS里的revsion和软件包的发布版本可以没有直接的关系。但所有文件使用和发布版本一致的版本号比较有助于维护。 版本分支的建立 一些人先在另外一个目录下导出release_1_0_patch这个分支:解决1.0中的紧急问题, 在release_1_0_patch上修正错误后,标记一个1.0的错误修正版本号 如果2.0认为这些错误修改在2.0里也需要,也可以在2.0的开发目录下合并release_1_0_patch_1中的修改到当前代码中: CVS的远程认证通过SSH远程访问CVS使用cvs本身基于pserver的远程认证很麻烦,需要定义服务器和用户组,用户名,设置密码等,常见的登陆格式如下: 不是很安全,因此一般是作为匿名只读CVS访问的方式。从安全考虑,通过系统本地帐号认证并通过SSH传输是比较好的办法,通过在客户机的 /etc/profile里设置一下内容: 比如: CVS服务器是192.168.0.3,上面CVSROOT路径是/home/cvsroot,另外一台开发客户机是192.168.0.4,如果 tom在2台机器上都有同名的帐号,那么从192.168.0.4上设置了: 如果CVS所在服务器的SSH端口不在缺省的22,或者和客户端与CVS服务器端SSH缺省端口不一致,有时候设置了: 注意:port是指相应服务器SSH的端口,不是指cvs专用的pserver的端口 CVSWEB:提高文件浏览效率CVSWEB就是CVS的WEB界面,可以大大提高程序员定位修改的效率:使用的样例可以看:http://www.freebsd.org/cgi/cvsweb.cgi CVSWEB的下载:CVSWEB从最初的版本已经演化出很多功能界面更丰富的版本,这个是我个人感觉安装设置比较方便的:
CVSWEB可不能随便开放给所有用户,因此需要使用WEB用户认证: CVS TAGS: $Id: cvs_card.html,v 1.5 2003/03/09 08:41:46 chedong Exp $将$Id: cvs_card.html,v 1.9 2003/11/09 07:57:11 chedong Exp $ 加在程序文件开头的注释里是一个很好的习惯,cvs能够自动解释更新其中的内容成:file_name version time user_name 的格式,比如:cvs_card.txt,v 1.1 2002/04/05 04:24:12 chedong Exp,可以这些信息了解文件的最后修改人和修改时间几个常用的缺省文件: CVS vs VSSCVS没有文件锁定模式,VSS在check out同时,同时记录了文件被导出者锁定。 CVS的update和commit, VSS是get_lastest_version和check in 对应VSS的check out/undo check out的CVS里是edit和unedit 在CVS中,标记自动更新功能缺省是打开的,这样也带来一个潜在的问题,就是不用-kb方式添加binary文件的话在cvs自动更新时可能会导致文件失效。 $Header: /home/cvsroot/tech/cvs_card.html,v 1.5 2003/03/09 08:41:46 chedong Exp $ $Date: 2003/11/09 07:57:11 $这样的标记在Virsual SourceSafe中称之为Keyword Explaination,缺省是关闭的,需要通过OPITION打开,并指定需要进行源文件关键词扫描的文件类型:*.txt,*.java, *.html... 对于Virsual SourceSafe和CVS都通用的TAG有: 我建议尽量使用通用的关键词保证代码在CVS和VSS都能方便的跟踪。 WinCVS下载:cvs Windows客户端:目前稳定版本为1.2 然后就可以使用WinCVS进行cvs操作了,所有操作都会跳出命令行窗口要求你输入服务器端的认证密码。 当然,如果你觉得这样很烦的话,还有一个办法就是生成一个没有密码的公钥/私钥对,并设置CVS使用基于公钥/私钥的SSH认证(在general 选单里)。 可以选择的diff工具:examdiff 基于CVSTrac的小组开发环境搭建作为一个小组级的开发环境,版本控制系统和BUG跟踪系统等都涉及到用户认证部分。如何方便的将这些系统集成起来是一个非常困难的事情,毕竟我们不能指望 Linux下有像Source Offsite那样集成度很高的版本控制/BUG跟踪集成系统。我个人是很反对使用pserver模式的远程用户认证的,但如果大部分组员使用WINDOWS客户端进行开发的话,总体来说使用 CVSROOT/passwd认证还是很难避免的,但CVS本身用户的管理比较麻烦。本来我打算自己用perl写一个管理界面的,直到我发现了 CVSTrac:一个基于WEB界面的BUG跟踪系统,它外挂在CVS系统上的BUG跟踪系统,其中就包括了WEB界面的CVSROOT/passwd文件的管理,甚至还集成了WIKIWIKI讨论组功能。 这里首先说一下CVS的pserver模式下的用户认证,CVS的用户认证服务是基于inetd中的: 映射系统用户的目的在于:你可以创建一个专门的CVS服务帐号,比如用apache的运行用户apache,并将/home/cvsroot目录下的所有权限赋予这个用户,然后在passwd文件里创建不同的开发用户帐号,但开发用户帐号最后的文件读写权限都映射为apache用户,在SSH模式下多个系统开发用户需要在同一个组中才可以相互读写CVS库中的文件。 进一步的,你可以将用户分别映射到apache这个系统用户上。 CVSTrac很好的解决了CVSROOT/passwd的管理问题,而且包含了BUG跟踪报告系统和集成WIKIWIKI交流功能等,使用的 CGI方式的安装,并且基于GNU Public License: 在inetd里加入cvspserver服务: xietd的配置文件:%cat cvspserver 注意:这里的用户设置成apache目的是和/home/cvsroot的所有用户一致,并且必须让这个这个用户对/home/cvsroot/下的 CVSROOT/passwd和cvstrac初始化生成的myproj.db有读取权限。 安装过程
修改登录密码,进行BUG报告等, 对于前面提到的WinCVS在perference里设置: CVS的用户权限管理CVS的权限管理分2种策略:
chown -R apache.apache /home/cvsroot chmod 775 /home/cvsroot Linux上通过ssh连接CVS服务器的多个开发人员:通过都属于apache组实现文件的共享读写 apache(system group) Windows上通过cvspserver连接CVS服务器的多个开发人员:通过在passwd文件种映射成 apache用户实现文件的共享读写 apache(system user) 利用CVS WinCVS/CVSWeb/CVSTrac 构成了一个相对完善的跨平台工作组开发版本控制环境。 相关资源: CVS HOME: CVS FAQ: CVS--并行版本系统 CVS 免费书: CVS命令的速查卡片 refcards.com/refcards/cvs/ WinCVS: CVSTrac: A Web-Based Bug And Patch-Set Tracking System For CVS StatCVS:基于CVS的代码统计工具:按代码量,按开发者的统计表等 http://ccm.redhat.com/bboard-archive/cvs_for_web_development/index.html 一些集成了CVS的IDE环境: Eclipse Magic C++ 原文出处:<a href="http://www.chedong.com/tech/cvs_card.html">http://www.chedong.com/tech/cvs_card.html</a> | ||||
| ||||
| ||
8月18日 | ||||
2005年度 JavaOne大会上,Nokia公司活动。可以借此分析手机重点技术 | ||||
2005年度 JavaOne大会上,Nokia公司活动。可以借此分析手机重点技术
移动服务架构计划:JSR-248和JSR-249(6月27日16:45) 移动服务架构计划:JSR-248和JSR-249的最新消息(6月27日21:30) J2ME平台网络手机游戏综述(6月28日9:45) Java校验程序:如何封装面向市场的应用程序(6月28日20:30) JSR-258设计,手机用户界面定制API(6月28日20:30) 在J2ME平台上通过蓝牙传输多媒体流(6月28日21:30) 通过Java技术实现OSS设计指南(6月28日21:30) 手机蓝牙网络JSR-82实用推荐及高级实践(6月29日16:00) 使用SIP AAPI在J2ME平台上实施Midlets(6月29日20:30) 使用RFID和虚拟标签:JSR-257无接点通讯API入门(6月29日22:30) 使用JSR-226打造便携和可升级移动应用程序(6月30日14:30) 诺基亚还希望与会者访问诺基亚展台(#1301),并同诺基亚Java技术专家就手机服务开发进行交流。在诺基亚展台,开发者可以获得诺基亚最新的手机开发包,观看下一代移动设备演示,或者浏览有关开发平台、开发者工具以及如何从移动通信中盈利的简单介绍。 | ||||
| ||||
| ||
什么手机才算是 Smart Phone ? |
什么手机才算是 Smart Phone ?
市场上有不少拍摄手机,又支持 MP3 播放,又有日程表等功能,究竟它们就是否 Smart Phone呢 ? 回答当然是否定的。那到底甚么样的手机才算是智能手机呢 ? 为了满足人们在商务 ; 娱乐等方面的需要,手机的功能越来越强大,外形也越来越特别,但不就等同『智能』。要真正成为智能手机,最根本的就是必须具有开放式操作系统。那甚么是开放式操作系统呢 ? 手机上的开放式操作系统其实就像计算机上的 Windows 操作系统 , Linux 操作系统等一样,都是可以通过安装或卸载第三方软件开发者开发的应用程序,实现用户和设备间按照需求达成互动关系的操作系统,现在智能手机的操作系统分为 Symbian, Windows Mobile, Linux 和 Palm 四大阵营的开放式操作系统,所以采用上述 4 类操作系统的手机才算是 Smart Phone。
目前智能手机 (Smart Phone) 的阵营内,共有分四大类 Smart Phone OS 系统。 1) Symbian OS (UIQ/Series 60/70/80/90) 2) PALM OS 3 Windows Mobile OS 4) Linux OS Symbian OS Symbian OS 智能手机操作系统是由多间厂商共同投资开发,所以也是现在被使用得最多和广泛操作系统之一,并根据各不同手机制造商和手机的需要,衍生演变出下列数个系列的智能手机操作系统来。 1)Symbian OS Series 60 2) Symbian OS Series 90. 3) Symbian OS UIQ 而其中Symbain OS Series 60 系统还分为 Symbian 6 .0 OS Series 60/Symbian 7. 0 OS Series 60 /Symbian 8. 0 OS Series 60 这三种不同的系统版本。 于多个 Series,要的分别在于它的的屏幕 Resolution 于输入方式。 Serie s60/80/90 全部都系建基于 Symbian 操作平台而开发的接口,但系暂时系冇 Series70 这个接口的,而未来Nokia可能会研发出 Series50 与 Series100接口,致于详细数据并未清楚。 Series 60 Series 60 接口暂时系咁多个 Series 中最多软件/game 支持的,所以功能和娱乐性暂时系最高,而 Series 60 接口暂时的屏幕 Resolution 为 176 x 208 pixels,而未来将会有更高的分辨率 240 x 320 pixels,352 x 416 pixels。 Series 80 Series 80 接口系指支持 Qwerty Keybroad 的手机, 例如: 9210、 9300、9500 等手机, Nokia 称它们为communicator,而 Series 60 接口暂时的屏幕 Resolution 为 640 x 200 pixels。 Series 90 Series 90 接口系配备轻触式屏幕,屏幕 Resolution 为多个 Series 之中最大的 640 x 320 pixels,按道理佢的功能和娱乐性最高,但因为佢的机种不多 (只有7700,7710),所以暂时冇 Series 60 咁多野玩,仲有,Series 90 传闻会同 Series 60 结合,所以 Series 90可能只系一个过渡性产品。 而使用 Symbian OS 的手机品牌十分广泛,有 Sanyo、BenQ、Siemens、Motorola、Panasonic、Nokia、Sendo、SE、SamSung、LG、Fujitsu、Lenovo、三菱电机公司等。 Windows Mobile OS 而 Windows Mobile 其实不是一个操作系统,而是一个微软 (MicroSoft) 旗下的一个品牌,其前身为微软于1996 年推出的 Windows CE ,到了 2000 年 4 月,微软终于决心摆脱 Palm 的巨大阴影,把 Windows CE 系列更名为 "Windows Pocket PC",伴随着手机硬件的发展和智能手机市场的出现,2003 年时为了适应手持设备市场的变化,微软开发出 Pocket Phone Edition 以及 Windows Powered Smart Phone 的操作系统,并将这两者同时划为 Windows Mobile 这一理念下的一个产物来了,使用 Windows Mobile OS 的手机品牌有著名的 XdaII、O2、HP 系列的 PDA 手机等。 Linux OS 而 Linux 操作系统和其在计算机上一样,都是一套自由使用和免费的操作系统,从成本方面考虑,无疑是最好的选择,Linux 在智能手机操作系统中最有价值之处在于与 JAVA 的溶合性,令 Linux + JAVA 的应用方式给智能手机用户极大的扩展,这也是 Linux 智能手机所占市场份额日益增加的原因,不过由于 Linux 操作系统在智能手机中的起步较迟,而且开发者大多属于各自为战的心态,所以现阶段来说 Linux Smart Phone 还没有太大的突破,但相信日后会有更强劲的发展潜在力。而使用 Linux OS 的手机品牌有Motorola E680。 Palm OS Palm 最初是为掌上计算机设计的开放式操作系统,但是随着无线通迅在个人掌上终端上的发展,Palm 的操作平台也被引入成为智能手机的操作系统,Palm 与其它操作智能手机系统不同,其系统本身所消耗的硬件资源是相当少。这样便会令到智能手机的硬件配置不会因此而捉襟见肘,但也正是因为如此,Palm 操作系统本身所能实现的功能十分有限,在很大程度上是需要通过第三方软件的拹助和扩展,所以用Palm 操作系统的智能手机对用户的要求相对较高,这也是现时 Palm 没有得到良好发展的其中一个原因。 智能手机的优点 如果用一个词来形容智能手机的优点的话,"无所不能"这句说话比较能突出智能手机的强大,听上去有点胯张,但由于智能手机采用了开放式操作系统,只要第三方软件开发者开发出能够满足你需要的功能的软件,那么你就可以通过在智能手机上,安装这款软件来实现你的需求,这也是智能手机生产商,所提出的 "ALL IN ONE" 的概念来,虽然一般智能手机上的功能,不能可以代替计算机内的功能,但在一般用户之日常工作所需下,是肯定比普通的手机为高出数级。 智能手机的优缺点 智能手机为实现各种功能,自然就需要比较强大而且齐全的硬件配置,所以智能手机的体积相比普通手机还不能得到根本上的突破,便携性方面要差于普通手机,智能手机采用了高级的系统,就像计算机上的 Windows O/S一样,出错的频率也要高于一般普通手机,故在 Smart Phone 身上发生 Hang 机只不过是一件正常的事,需要 Re-start 手机等问题发生在智能手机上并不奇怪 ! 另外由于手机采用了开放式的操作系统,智能手机难免会遭到非法程序的影响,例如最近的出现的多个智能手机病毒问题,这些都会影响到智能手机的正常使用。 另外 Smart Phone 的耗电量,多少是会较一般普通手机为多,但不算是严重,以功能和性能来对比仍算是合理的。 |