cvsnt2.5 版本与cvstracnt 配合使用方法

阅读更多
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".

你可能感兴趣的:(CVS,软件测试,配置管理,PHP,BBS)