12.10
http://bbs.cnpack.org/viewthread.php?tid=922&sid=dlL6Gw
测试的环境:
操作系统:windows2000
安装如下软件:
cvsnt-2.5.03.2151.msi
cvstracnt 1.2.0 中文版
大家知道cvstrac 是通过分析cvs的历史文件history来了解cvs库变化情况的,
自从cvsnt升级到2.5版本之后,在默认情况cvsnt2.5根本不会生成 history 文件,
这样cvstrac不能了解cvs库的变化情况,这也就是cvsnt2.5不能与cvstrac配合使用的原因。
下面分2种情况来说明,如何使用cvsnt2.5与cvstracnt配合使用。
1种情况,使用cvsnt2.5建立新仓库
使用cvsnt2.5创建完仓库后,在服务器cvsroot 目录下手工创建空文件history,
这样cvs库的变化就可以写入history。
之后在cvstracnt配置界面"导入仓库",在cvstracnt上就能看到了cvs库的变化了。
2种情况,由旧版本库升级到2.5的仓库
自从cvsnt升级到2.5以后,其设计发生了一些变化,有些商业运作的味道。
其管理文件(在 cvs 仓库之中,$CVSROOT/CVSROOT 目录下的文件),也有很大变化,
在初始化仓库时,增加了如下文件
commit_email
keywords
notify_email
postcommand
postmodule
precommand
premodule
shadow
tag_email
triggers
而去掉了下面2个文件
editinfo
postcommit
但是,我们在对cvs仓库升级到2.5时,对于库中的管理文件并没有自动升级,
升级之后cvsnt2.5并不会向history 文件中写入信息,
这也就是由旧版本升级到cvsnt2.5后不能与cvstrac配合使用的原因。
结合前面的情况,对于升级到2.5的仓库要采用如下方法才能与cvstracnt配合使用。
1.用cvsnt2.5建立一个测试仓库
2.从测试仓库cvsroot目录下,copy如下cvsnt2.5新增的文件到要升级的仓库cvsroot目录下即可
commit_email
keywords
notify_email
postcommand
postmodule
precommand
premodule
shadow
tag_email
triggers
说明:history 文件升级到2.5之后,格式也发生了些变化,但是这些变化不会影响与cvstrac的配合使用
在v2.0.58d 写history文件内容的方法如下:
sprintf (line, "%c%08lx|%s|%s|%s|%s|%s\n",
type, now,
username, workdir, repos, revs, name);
而在v2.5.01.1949 写history文件内容的方法如下:
sprintf (line, "%c%08lx|%s|%s|%s|%s|%s\n",
type, global_session_time_t,
username, workdir, repos, revs, name);
这里在时间的设置上,用"global_session_time_t" 替换了 "now".