问题描述:世华规划总表存储在cvs上,因多人共同维护,常造成文件冲突、文件内容混乱等情况。
通过以下几种方式可以实现多人共同修改世华规划总表的需求:
1.使用wincvs:
(1)使用流程:
设置文件的watch为on(管理员和普通用户均可),开启watch后检出该文件为只读文件。
首先打开cvs命令行:在Admin菜单中点击Command Line
命令语法:cvs watch on 文件名或目录名(名称不能有空格)
例如:cvs watch on 世华规划总表.doc
若开启目录的watch,目录中的所有文件都将开通watch,且以后添加的文件自动开启watch
注:此方法和Trace菜单中的Add a watch/Remove a watch功能不同。
Add a watch是将当前用户添加到指定文件的观察列表中;
Remove a watch是将当前用户从指定文件的观察列表中移除;
观察列表是所有执行了“Add a watch”操作的用户集合,可通过在Trace菜单中点击Watchers查看选定文件的观察列表。
(2)检出文件:
检出文件,文件状态为只读,此时文件不可修改,如下图所示:
(3)修改文件前记得更新,之后点击下图中的按钮或在Trace菜单中点击Reserved edit
如果有其他人对该文件执行了Reserved edit操作,则会提示如下图所示错误:
待他人将文件提交后,再使用Reserved edit预约修改文件。
修改文件后,需对文件执行commit操作,文件自动变为只读状态;
若用户点击Reserved edit后因某些原因此次没有修改文件,一定要使用Unedit功能,如下图所示按钮或在Trace菜单中点击Unedit
(4)可通过下图所示按钮查看谁在编辑文件或在Trace菜单点击Editors
若看到下图所示信息,则说明用户chengwe正在编译文件。
备注:
对于项目中文件变为只读文件的情况,由以下两种情况造成的:
有人对文件使用了Unedit功能,文件自动变为只读的;
有人在wincvs中的Globals设置中,将File属性设置为Read-only后提交文件所致。
2.使用TortoiseCVS:
TortoiseCVS1.12版和TortoiseCVS.1.10版中自带了Command菜单,TortoiseCVS1.8.18版本不带Command菜单。
(1)使用流程:
(2)开启watch:
点击CVS菜单Command选项,开启watch的命令语法与wincvs的相同。
(3)修改文件前记得更新,之后右键单击需编辑的文件,选择“CVS编辑”:
若看到如下图所示的提示信息,说明有人在编辑该文件。
(4)修改并提交文件后,文件自动变为只读状态;若未修改文件,使用“取消编辑状态”重置文件状态为只读,如下图所示:
(5)查看谁在编辑文件,选择“显示已编辑的文件”,如下图所示:
看到下图的提示信息,说明有人正在编辑该文件。
3.使用Eclipse:
Eclipse用户不能设置文件的Watch属性,以下是Eclipse用到的相关属性:
Team->Show Editors 与wincvs的Editors作用相同
Team->Edit 与wincvs的Reserved edit作用相同
Team->Unedit 与wincvs的Unedit作用相同
注意事项:
(1)编辑文件前要使用Edit功能,直接双击修改文件起不到文件锁的作用
(2)点击Edit后,如果弹出下图所示,要点“Cancel”按钮,如果点击“OK”,会强制变更编辑文件的用户为当前用户,还是会造成文件冲突
4.使用svn:
客户端版本:TortoiseSVN 1.6.15, Build 21041 - 32 Bit
(1)使用TortoiseSVN对文件加锁,如下图所示:
(2)用户对文件加锁时,如果文件已被锁定,提示如下信息:
(3)使用svn对文件加锁后,他人提交文件时提示文件被锁定,无法提交,如下图所示:
(4)使用svn的锁文件功能也存在一定风险,已加锁的文件可以被其他人强制偷锁,也就是将文件锁转移到自己名下,使他人的锁失效:
问题总结:
因使用人数较多,且世华项目都使用的cvs库,建议使用wincvs的方法解决此问题。