04-9-29 13:48
昨晚闹腾到三点钟都没有解决问题。仔细查阅了帮助文件,找到了这个方面的内容:如果提供cvs命令行工具的话,通过一定的设置,是可以支持本地化的版本配置管理的。兴冲冲的去试
过程如下:
1、安装了wincvs12,目录中有cvs.exe命令支持命令行运行;
2、在NB update中心下载了cvs模块并加载;
3、菜单中出现版本控制的选项,选mount version control,出现设置对话框,选cvs的profile,并设置类型为local(如帮助所提示),然后依次设置working path和reporisty,确定。
4、init,正常;checkout,正常;但是,进行commit操作时提示bad command or filename;然后无论进行其它任何操作如add、remove等都出现此错误提示;
5、再次对cvs profile进行设置,手动设置cvs路径,以及unix shell的解释器为command.com,问题依旧。
中午上网查询,首先在中国java网发帖求助(http://www.cjsdn.net/post/view?bid=7&id=114488&sty=1&tpg=1&age=0),光靠别人可不行,于是me就用google搜,呵呵,有用的真不多呀。不过看到了一个有用的,用CVS来管理自己的程序(http://www.fanqiang.com/a6/b9/20010809/1500001096.html)。
一、初始化环境并设置repository。
1、如法炮制,me首先设置了环境变量(说明一下,me的win98),在dos窗口中set CVSROOT=E:\MYDATA\repst\CVSROOT,然后运行set查阅变量已经设置好;谁知道运行cvs init的时候出了问题,出错提示“CVS.EXE [init aborted]: no such host E”。在例子中的os都是unix或者linux,路径如/user/CVSROOT之类,难道cvs不支持windows的路径系统?!
2、找到cvs.hlp帮助文件,翻啊翻啊,翻的累死了,终于在Node: Repository中发现了这么一句:But if (under Windows NT, for example) your local repository is c:\src\cvsroot, then you must specify the access method, as in :local:c:\src\cvsroot.呵呵,原来还有这么一说!随后为了查询repository的中文意思(汗!),结果用google发现了cvs帮助的中文版本(http://cvsdoc-zh.gro.clinux.org/cvsdoc/zh_CN/html/Repository.html#Repository),呵呵,可见互联网是个好东东!
3、好,言归正传,运行cvs -d :local:E:\MYDATA\repst init,什么提示都没有,查阅一看,多出了一个CVSROOT的目录,下面有好多文件,可见init已经成功了,哈哈,终于前进了一步。
二、导入一个例子项目到cvs中去。
1、进入该项目所在的目录E:\MYDATA\JAVAPRO\sound;
2、然后运行cvs import -m "start my project: sound" sound heart5 start,哟乎,不好,那个该死的“no such host E” 居然又出现了!!!晕死!难道working directory也需要使用:local方式存取,试了好久,总是不成功。
3、没有办法,只好求助于google。这次很惨,用关键词“cvs import "no such host"”搜索居然没有中文的结果,连e文的也只有21条且几乎无用。回头再找那个中文帮助文件中的“告诉CVS源码库放在哪里”部分(http://cvsdoc-zh.gro.clinux.org/cvsdoc/zh_CN/html/Specifying-a-repository.html#Specifying%20a%20repository),觉得可能是环境变量CVSROOT的问题。
4、哈哈。调试成功,命令为cvs -d :local:E:\MYDATA\repst import -m "start my project:sound" sound heart5 start,运行后显示No conflicts created by this import,到CVSROOT下看,已经设置了一个sound目录并且存放的文件都已经被cvs接管了,因为各个文件都被打上了cvs的标记,比如branch、log之类的标签。
5、???美中不足的是连已经编译的class文件都import了。按道理应该有过滤选项的,下次再试吧。
三、从CVS中导出项目。
1、把源sound文件夹备份后删除。
2、新建一个wrktmp的目录,进入该目录,运行cvs checkout sound。哇,那个“no sunch host E”又出现了。这次可不怕,添加定位repository的命令cvs -d :local:E:\MYDATA\repst checkout sound,OK,正常了。
3、查看wrktmp目录,下面多了个sound目录;进入,里面是刚才导入的文件,不过多了个子目录cvs;进入cvs,里面有三个文件,Root、Repository、Entries。
4、!!!每次都要手动输入-d指定repository的位置真挺烦的。能不能设置环境呢?!试了一下,成功。设置环境为set CVSROOT=:local::E:\MYDATA\repst 试运行cvs checkout sound,系统提示“CVS.EXE checkout: Updating sound
”,应该是成功了,呵呵。
四、保存修改到CVS中。
1、对其中一个原文件做了修改,添加了一个函数。
2、运行cvs commit -m "add a function",显示成功,刚才改变的文件的版本号变成了1.2。
五、添加文件到项目中。
1、从其它地方拷贝过来一个java文件。
2、cvs add About.java,显示添加成功,并提醒要用commit功能才能完全加入;cvs commit About.java,弹出注释文本提醒(此处自动打开记事本),录入注释信息,完成添加操作。
3、!!!添加文件,运行add后还需要commit,才算真正签入源码库。
4、???添加一个目录时好像有些问题,暂时不能正常操作,具体表现为目录下的文件不能自动签入源码库。
!!!add命令的执行方式不是递归的。你不得不指明你准备添加到源码库中的文件名和路径。而且,每个目录在添加新文件到其中之前,还必须单独地添加进源码库。
六、从项目中删除文件。
1、操作步骤和添加的操作差不多,差别在于add改为remove,相同之处在于都需要再commit一次。
2、注意把工作目录下的文件也做相应删除。
3、!!!CVS只是删除了当前版本的指定文件,它以前的版本依然存在,除非它恰好仅有1.1版本。