1, cvs update
cvs update -A //clear stickcvs update -d //create new file
2, cvs diff
转一篇:
粘滞性标签(Sticky Tag)在CVS中,如果检出时指定版本树上的一个版本,对它进行的修改是无法直接提交的,这种情况下就叫Sticky Tag。解决方法可以是:方法一:1、要提交必须先在检出版本的地方创建分支,更新到分支,再修改提交到分支上。步骤如下:从先前标记的里程碑:release_1_0 导出一个分支 release_1_0_patch:cvs rtag -b -r release_1_0 release_1_0_patch proj_dir2、在另外一个目录下导出 release_1_0_patch 这个分支,修改其中的bug:cvs checkout -r release_1_0_patch3、在release_1_0_patch上修正错误后,标记一个1.0的错误修正版本号:cvs tag release_1_0_patch_1方法二:或者用"cvs update -A"命令更新,去掉粘滞性标签,-A选项将从文件版本更新到主干顶部,并且忽略中间的任何粘性标签、设置日期和选项。正确的通过CVS恢复旧版本的方法如果用cvs update -r 1.2 file.name这个命令是给 file.name 加一个Sticky Tag: "1.2" ,虽然你的本意只是想将它恢复到1.2版本正确的恢复版本的方法是:cvs update -p -r 1.2 file_name > file_name如果不小心已经加成Sticky Tag的话:用cvs update -A 解决恢复CVS中被Remove的文件如果是执行了remove命令而没有提交的话,直接运行"cvs add 被删除的文件名"即可。如果是执行了remove后又执行了commit,就要先运行"cvs add 文件名",然后选中这个文件,执行update,然后再执行commit。如:cvs -r x.x(删除时的版本号) file > filecvs add filenamecvs ci -m "file" file注释:file是要恢复的文件名移动文件/文件重命名cvs里没有cvs move或cvs rename,因为这两个操作是可以由先cvs remove old_file_name,然后cvs add new_file_name实现的。查看修改历史cvs log file_namecvs history file_name删除/移动目录最方便的方法是让管理员直接移动,删除CVSROOT里相应目录(因为CVS一个项目下的子目录都是独立的,移动到$CVSROOT目录下都可以作为新的独立项目:好比一颗树,其实砍下任意一枝都能独立存活),对目录进行了修改后,要求其开发人员重新导出项目cvs checkout project_name 或者用cvs update -dP同步。项目多分支同步开发确认版本里程碑:cvs tag release_1_0多个文件各自版本号不一样,项目到一定阶段,可以给所有文件统一指定一个阶段里程碑版本号,方便以后按照这个阶段里程碑版本号导出项目,同时也是项目的多个分支开发的基础。开始一个新的里程碑:cvs commit -r 2 标记所有文件开始进入2.x的开发注意:CVS里的revsion和软件包的发布版本可以没有直接的关系。但所有文件使用和发布版本一致的版本号比较有助于维护。版本分支的建立:在开发项目的2.x版本的时候发现1.x有问题,但2.x又不敢用,则从先前标记的里程碑:release_1_0导出一个分支 release_1_0_patchcvs rtag -b -r release_1_0 release_1_0_patch proj_dir一些人先在另外一个目录下导出release_1_0_patch这个分支:解决1.0中的紧急问题,cvs checkout -r release_1_0_patch而其他人员仍旧在项目的主干分支2.x上开发在release_1_0_patch上修正错误后,标记一个1.0的错误修正版本号cvs tag release_1_0_patch_1如果2.0认为这些错误修改在2.0里也需要,也可以在2.0的开发目录下合并release_1_0_patch_1中的修改到当前代码中:cvs update -j release_1_0_patch_1以上内容转载自车东的“CVS使用手册”和“加菲猫的SE-Blog”。参考资料1、CVS使用手册2、CVS中文手册3、CVS Home4、CVSNT5、WinCVS中文版6、CVSNT用户权限设置
