■■wincvs和cvs的弱点,这两个都可以不同的人同时checkout一个文件
并且大家都不知道对方已经checkout,当checkin 的时候就会发生冲突
各位如何解决这个问题的?
还有有什么版本控制软件即支持web方式,并且只能有一个人checkout,就像vss一样?
高手执教 问题点数:0、回复次数:33Top
1 楼zhuma(竹马)回复于 2003-09-08 11:15:53 得分 0
CVS会合并亚
不算弱点
算优点吧Top
2 楼jodn()回复于 2003-09-08 11:29:33 得分 0
这本来就是cvs的特点嘛。Top
3 楼tj_dns(愉快的登山者)回复于 2003-09-08 11:40:09 得分 0
我没有使用过CVS,若真是象zhuma(竹马) 说的可以合并版本,那真是一个特点了。
但当出现合并冲突时,CVS会如何处理呢?Top
4 楼termite(★★★★★)回复于 2003-09-08 12:07:00 得分 0
it's same for those popular tools(cvs,vss,clearcase,etc) to list conflicts to let you guy to make decision of merging when you guy meets "合并冲突".Top
5 楼vernicle(蒜泥烧)回复于 2003-09-08 13:16:05 得分 0
concurrent check out 也就是 unreserved check out 比 reserved check out
先进一点吧
串行 很明显效率低Top
6 楼yorgo(羽高)回复于 2003-09-09 03:08:33 得分 0
cvs可以智能的合并,如果无法合并的冲突的话,它会报告有冲突,你要自己解决冲突后才可以check inTop
7 楼zhuma(竹马)回复于 2003-09-09 09:24:04 得分 0
yorgo(羽高)是对得
在大部分情况下CVS都会智能合并
实在合并冲突
就要靠人了Top
8 楼qingrun(青润)回复于 2003-09-09 14:06:44 得分 0
这种智能合并其实并不好用,而且经常容易出现问题。
在正式的工作中,应该尽可能的避免发生两个人进行同时对同一个文件进行修改,发生这样的问题,往往暗示着:你的管理存在着一些的问题。不信,你就自己好好思考一下。Top
9 楼shizi_mhy(柿子)回复于 2003-09-12 13:25:29 得分 0
我认为版本控制最重要的一点就是控制一个文件同一时间只能由一个人修改
允许两个人同时check out
我想不明白
最后的合并就那么可靠吗
我不大相信Top
10 楼vernicle(蒜泥烧)回复于 2003-09-12 21:01:33 得分 0
to shizi_mhy
那是早期的理论
八十年代以后的系统都开始支持并发的开发
并发的效率要高的多
就是多个人同时check out一个文件
尽管自动合并的版本并不可靠
但是新的工具可以保存并发过程中的每一个历史
Top
11 楼RedFire(丹焰)回复于 2003-09-13 15:05:40 得分 0
至少在我所做的项目中,还没有遇到什么东西需要并行开发的时候。而且,真正的并行开发也不是通过允许多个人同时checkout一个文件来实现的吧。
这也是我选择VSS而不是CVS的原因,不用再为文件的合并分心了。而且,VSS同时支持串行和并发地对一个文件进行checkout,不知道CVS可不可以做到。Top
12 楼l_walker(靡不有初,鲜克有终!)回复于 2003-09-13 16:22:27 得分 0
可以用cvs的lock啊,这样一个人拿出后其他人只能checkout不能checkin了
还可以用cvs的.perms文件中配置相应的读写权限,研究下文件就知道了:)
默认情况是default:rwc,r:read,w:write,c:contral
不过我认为这种情况是职责分配不清所带来的,为什么允许不同的人修改同一个文件呢?
再项目开发中,我认为基本不需要lock文件的机制,项目按模块分配给开发人员
每个人只开发修改自己的部分,这样就不会存在冲突了,
Top
13 楼joyrush(LIFO,其实我叫李佛)回复于 2003-09-13 20:30:03 得分 0
楼上观点赞同..
---------------------------------------------------------------------------------
一般而言,在项目小组中,项目经理会定期公布最新的基础版本,要求小组成员都在这个基础版本上进行进一步开发。
在实际工作中,总会有些成员提前完成工作,他们提交更改后,最新版本就会比项目经理发布的基础版本的version更高。
有时候,某些项目成员会有意无意修改基础版本,并且指定提交到基础版本上,如果允许他们提交修改,大家可能都会在一个错误的基础版本工作,后果是不堪设想的。
锁定文件的操作如下:
菜单栏的admin->>comandline,输入这个命令:
cvs admin -l版本号 文件全名
注意,-l和版本号之间没有空格。
如果你锁定成功,会有如下提示:
RCS file: /cvs/hrsystem/test/new.txt,v
1.1.2.3 locked
done
*****CVS exited normally with code 0*****
Top
14 楼oydz()回复于 2003-09-15 17:33:34 得分 0
pvcs支持webTop
15 楼oydz()回复于 2003-09-15 17:35:04 得分 0
要想符合自己的要求最好是自己做一个
我们就是用自己做的,Top
16 楼pp_hong(pp)回复于 2003-09-15 21:39:21 得分 0
it will merge them all.Top
17 楼oeyeer(老顽童-江湖中的外人)回复于 2003-09-15 22:59:55 得分 0
我是"学者"!:)UP一下!Top
18 楼Fred_Mark()回复于 2003-09-17 00:18:58 得分 0
只用过vss,不过确实有些时候会遇到两个人同时需要check一个文件的时候,不过这种时候是很少的哦Top
19 楼netvt(唯她(为了泡老婆,努力学习LISP))回复于 2003-09-17 04:31:43 得分 0
这也叫弱点?!
职责分明时,一般不会产生这种情况.
如果产生了说明对同一问题,意见有分歧,可以通过沟通解决.
回避问题不等于解决问题.
Top
20 楼wkliangsdqd(天元)回复于 2003-09-17 09:44:16 得分 0
学习!!Top
21 楼sherryji(雪妮)回复于 2003-09-17 20:31:16 得分 0
subversion可能会符合要求,他的正式版好像还没有出来。网上介绍也不是太多。Top
22 楼DoDone(燃情岁月)回复于 2003-09-19 08:51:10 得分 0
CVS:
现在所做的一个项目,由于其中的一些文件属于配置文件,需要参加项目的人经常修改,如何保证不同人写的部分不被互相替换掉。Top
23 楼huangxiao(羽毛蛇)回复于 2003-09-19 15:00:58 得分 0
实际上并发处理本来就是很正常,这就是CVS比VSS优秀的地方,大家同时签出后,签入的时候系统会检查你上次签出后文件是否被修改过,如果服务器上的文件被修改过而且和你修改的是同一份文件则要求先updata本地的数据,同时标示出服务器上文件和你现在手头的文件不同的地方,然后你手工修改确定。最后再签入,这样得到最新的文件。CVS出现的背景就是在Internet网络上的协同开发,试问如果一个人签出,其他人就不能签出,拿这个系统还如何运转。Top
24 楼softworm(老头)回复于 2003-09-20 12:28:30 得分 0
CVS的合并是基于文本的,所以对于小的不同它能正常合并。
但是这个合并是否符合你的要求,还需要你自己检查。
一般update后提示M或C,你都需要特别注意。当然,仅对共享的文件
才会出现这种问题。
我觉得出现冲突并不是可怕的事情,如果你经常提交的话。
事实上,提交是需要经常进行的,尤其对一个多人开发的项目。
如果实在害怕冲突,可以使用cvs的lock功能,这样别人就不能提交了。
当然,这也意味着一定程度上的效率降低。Top
25 楼softworm(老头)回复于 2003-09-20 12:30:18 得分 0
应该说CVS的合并是基于文本行的。所以对于有结构的文本就容易发生冲突,
尤其是一些大家共享的文本文件,比如VC的dsp文件等。Top
26 楼softworm(老头)回复于 2003-09-20 12:32:42 得分 0
CVS的update基本相当于VSS的checkout,而CVS的checkout基本相当于
VSS的Get latest version。Top
27 楼bassil(bassil)回复于 2003-12-02 17:47:06 得分 0
自动合并是可以信赖的!
如果有怀疑,我总是在check in 之后,get last version , rebuild all, run for smoke test.Top
28 楼wql425(wql)回复于 2003-12-02 20:25:27 得分 0
如果同时修改同一块代码有可能处理不对,要小心Top
29 楼dongquestion(书山有路勤为径)回复于 2003-12-04 10:59:20 得分 0
要尽量避免冲突,我觉得解决冲突的目的是在万一出现了冲突的情况下,避免程序,文件的相互覆盖!Top
30 楼alpha_wang(南海十三郎)回复于 2003-12-05 20:14:49 得分 0
Please refer <<Open Source Development With CVS>> Write by: Karl FogelTop
31 楼dongquestion(书山有路勤为径)回复于 2003-12-09 18:27:58 得分 0
哪儿有书啊??Top
32 楼stonespace(stonespace)回复于 2003-12-09 21:20:04 得分 0
合并不可靠Top
33 楼qiujoe(迷糊)回复于 2003-12-10 13:27:36 得分 0
CVS 认为两个人同时签出一个文件是属于项目管理的问题,不应该由它负责。