 | 项目搜索 |
| |
|
项目名称: News Group:
论坛: 浏览论坛
摘要|
管理|
首页|
论坛|
跟踪|
错误|
支持|
补丁|
电子邮件|
任务|
文档|
调查|
新闻 |
CVS|
软件包|
Posted By: fch415
Date: 2006-02-20 02:39
Summary:CvsPlus:帮助你在eclipse中锁定CVS资源文件!
去年我带队的一个项目时,在项目的最初一个月里,我的程序员们一直向我抱怨:CVS为什么不能排他方式(锁定)编辑一个文件,以免多人同时修改同一个文件,就像VSS那样。他们甚至和我说CVS还不如VSS,当然我跟他们解释了CVS采用这种模式的优点。
我也在思考他们的抱怨,原因有如下几个:1、他们初次使用CVS,更习惯VSS;2、CVS中的很多操作的含义,他们还理解不深,虽然项目第一天我就给他们专门就CVS与JUnit做了一次使用培训;3、你不能指望程序员对几种源码版本管理工具的都有正确理解,虽然我对VSS、ClearCase、CVS的配置管理都非常了解。
当然在一个月以后,他们在Eclipse里越来越离不开CVS了,一方面多人编辑的文件是少数,他们互相间已打好招呼,一方面我也在合并/冲突/提交/更新等操作遇到问题时告诉他们如何解决。再也没有人向我抱怨CVS了!
但我一直没有放弃对CVS"独占"模式的研究,我首先找到了Watch模式:这是CVS另一种使用模式,开启此模式后,每个人在编辑一个文件前会先通知CVS服务器,另一个人可以查看(Watch)当前谁在编辑这个文件。但这个模式并不是独占式,每个人都可以提交这个文件,后提交者必须手工合并文件(非二进制)以保证文件最终正确。Watch模式真正的意义在于:帮助你了解某个文件当前在被哪些人编辑,至于你是加入到同时编辑的队伍中去还是等他们搞完了再去改,这取决于你自己。
我立即给他们推荐了Watch模式。我给他们在Eclipse中配好Watch模式后,他们在使用了一个礼拜之后便再也不用了。我问了一下原因,我认为他们不用的理由也很合理:每个文件都要先点"Edit"(通知CVS服务器)否则是只读文件,操作很麻烦且还是不能避免手工合并;为了避免手工合并文件需要尽快提交代码,每天会修改大量代码,难免忘记提交这个文件,最早编辑落在最后的人合并的工作也最多;总之不如以前那种直接修改方式。
看来需要另一条道路:CVS的Admin命令支持Lock/Unlock文件,但Admin命令只允许管理员帐号才能使用。我已经安装过WinCVS,所以我在DOS命令行窗口执行了该命令:被锁定的文件(除加锁者外)任何人都不能再提交,这是一种弱锁定;另一种是强锁定,即任何人都不得提交被锁定文件,我试过但并没有生效,不知道是不是该参数已废弃。所以以后的讨论都基于前一种锁定方式。
使用CVS Lock功能的唯一缺点(也许应该是优点):只能CVS管理员级帐号才能使用,但基于权限与安全考虑一般程序员都只有用户级帐号。所以该功能更适合让管理员锁定某些重要文件或文档的版本以保证不再被更改。事实上我这个项目也适合使用该功能:由于是Offshore开发,每周都会有几批Java或文档提交给外方,所以提交后的Java或文档作为正式交付物应由管理员作版本锁定以防误改(在下次变更前才可解锁)。当然对于正在编写过程中的代码,我建议还是使用CVS缺省模式。
由于Eclipse本身的CVS插件并没有提供该功能,所以我更想做成一个扩展插件帮助我或是更多的人来使用。在我自己写完一个CVS命令类库后,在查阅大量Eclipse源码基础上,继承Eclipse的CVS类后编写了一个扩展插件:CvsPlus Plugin。
感谢你下载CvsPlus!也许以后我把更多的功能添加到该插件菜单中,比如CVS权限设置/高级Tag功能等。
安装前请先仔细阅读《许可协议》,欢迎使用!
http://cosoft.org.cn/projects/cvsplus/ |
|
管理
开始一个新话题: |
|