• 配合Visual SVN使用Trac 0.12


    尝试了好久,终于在VisualSVN上集成了Trac 0.12.

    安装完毕后,记录下新建Trac Project的操作过程。

    1.创建Trac Project

    假设TracProject目录设置在D:\Trac,确保NETWORK SERVICE用户对其具有完全访问权限。

    要新建的Project名为MSS,命令行中输入:

    trac-admin d:\trac\mss initenv

    直接回车表示使用sqlite数据库,询问Project名称(以后可修改)时输入项目名称:MSS,等待数秒后Trac初始化完毕。

    2.集成Trac到VisualSVN的Apache服务器中

    这里我用的是Trac推荐的mod_wsgi,用于集成Trac到Apache.

    假设VisualSVN安装在C:\Program Files\VisualSVN Server;SVN版本库根目录设置在D:/SvnRepository

    打开C:\Program Files\VisualSVN Server\conf\httpd-custom.conf

    添加以下代码:

    LoadModule wsgi_module bin/mod_wsgi.so
    LoadModule authz_user_module bin/mod_authz_user.so

    WSGIScriptAlias /trac/mss D:\Trac\mss\trac.wsgi

    <Directory D:\Trac>
       WSGIApplicationGroup %{GLOBAL}
    #    Order deny,allow
    #    Allow from all
    </Directory>

    <Location '/'>
    AuthType Basic
    AuthName "Trac"
    AuthUserFile D:/SvnRepository/htpasswd
    Require valid-user
    </Location>

    上面用到的D:\Trac\mss\trac.wsgi脚本文件我按照Trac deploy出来的格式照抄了一份:

    #!C:\Python27\python.exe
    #
     -*- coding: utf-8 -*-
    #
    #
     Copyright (C)2008-2009 Edgewall Software
    #
     Copyright (C) 2008 Noah Kantrowitz <noah@coderanger.net>
    #
     All rights reserved.
    #
    #
     This software is licensed as described in the file COPYING, which
    #
     you should have received as part of this distribution. The terms
    #
     are also available at http://trac.edgewall.org/wiki/TracLicense.
    #
    #
     This software consists of voluntary contributions made by many
    #
     individuals. For the exact contribution history, see the revision
    #
     history and logs, available at http://trac.edgewall.org/log/.
    #
    #
     Author: Noah Kantrowitz <noah@coderanger.net>
    import os

    def application(environ, start_request):
        
    if not 'trac.env_parent_dir' in environ:
            environ.setdefault(
    'trac.env_path''d:\\trac\\mss')
        
    if 'PYTHON_EGG_CACHE' in environ:                                           
            os.environ[
    'PYTHON_EGG_CACHE'= environ['PYTHON_EGG_CACHE']
        
    elif 'trac.env_path' in environ:
            os.environ[
    'PYTHON_EGG_CACHE'= \
                os.path.join(environ[
    'trac.env_path'], '.egg-cache')
        
    elif 'trac.env_parent_dir' in environ:
            os.environ[
    'PYTHON_EGG_CACHE'= \
                os.path.join(environ[
    'trac.env_parent_dir'], '.egg-cache')
        
    from trac.web.main import dispatch_request
        
    return dispatch_request(environ, start_request)

     以上设置表示:

    项目mss访问地址为 http://服务器地址/trac/mss;

    使用visualSVN内置的用户帐号登录;

    禁止匿名访问。

    若需要允许匿名访问,可以把 httpd-custom.conf文件中的

    <Location '/'>
    AuthType Basic
    AuthName 
    "Trac"
    AuthUserFile D:
    /SvnRepository/htpasswd
    Require valid-user
    </Location>

     替换为

    <Location /trac/mss/login>
    AuthType Basic
    AuthName 
    "Trac MSS"
    AuthUserFile D:
    /SvnRepository/htpasswd
    Require valid-user
    </Location>

    这样点击Trac登录链接时会弹出认证框要求登录。

    以后若要添加新的Trac Project(如新建项目CMSCS)只需要在httpd-custom.conf再加一行:

    WSGIScriptAlias /trac/cmscs D:\Trac\cmscs\trac.wsgi

    然后复制一份trac.wsgi到cmscs目录中。

    若项目需要单独的权限可以再添加

    <Location /trac/cmscs/login>
    AuthType Basic
    AuthName 
    "Trac CMSCS"
    AuthUserFile D:
    /SvnRepository/htpasswd
    Require valid-user
    </Location>
     

     3.设定webadmin用户

    webadmin让你可以从web界面管理trac配置,从0.12版本开始内置在trac中。

    我们要让指定用户具有webadmin权限。

    命令行输入:

    trac-admin d:\trac\mss
    permission add xwing TRAC_ADMIN
    permission list xwing

    其中用户名xwing需要在visualSVN中有对应用户。

    4.关联SVN版本库 

    从Trac0.12版本支持一个Project关联多个SVN版本库。

    假设VisualSVN版本库根目录位于 D:\SvnRepository,事先已经为项目MSS建立好一个SVN版本库,位于D:\SvnRepository\MSS

    有两种方式可以添加SVN版本库到Trac,这里使用修改Trac.ini的方式。

     打开d:\trac\mss\conf\trac.ini

    添加如下内容:

    [repositories]
    mss.dir 
    = D:/SvnRepository/MSS
    mss.description 
    = MSS
    mss.type 
    = svn
    mss.url 
    = http://服务器地址/svn/MSS
    .alias 
    = mss
    .hidden 
    = true

    保存之后,刷新页面即可看到浏览源码菜单。并且mss版本库被设置为默认值。

    若要添加多个版本库,可以修改[repositories]配置信息为:

    [repositories]
    mss.dir 
    = D:/SvnRepository/mss
    mss.description 
    = MSS
    mss.type 
    = svn
    mss.url 
    = http://服务器地址/svn/mss
    cmscs.dir 
    = D:/SvnRepository/cmscs
    cmscs.description 
    = CMSCS
    cmscs.type 
    = svn
    cmscs.url 
    = 
    .alias 
    = mss
    .hidden 
    = false

    注意如果trac.ini中有中文的话,需要保存为没有BOM的UTF-8格式。

    在trac.ini中配置SVN版本库后可以在webadmin的管理面板中查看,但是不能修改。

    svn版本库配置完毕后需要重新同步Trac缓存。

    输入以下命令:

    trac-admin d:\trac\mss repository resync "mss"
    trac-admin d:\trac\mss repository resync "cmscs"

     分别重新同步添加的2个SVN版本库。

    或者直接执行命令: 

    trac-admin d:\trac\mss repository resync "*"

     同步所有SVN版本库。

    5.同步SVN版本库

     从Trac0.12开始,需要在SVN服务添加post-commit hooks来显式进行同步。

     在VisualSVN的MSS版本库节点上右键菜单选择属性,弹出对话框中选择Hooks标签页

    双击post-commit hook,在对话框中输入:

     
    trac-admin d:\trac\mss changeset added "mss" "%1" "%2"
     

    双击 Post-revision property change hook,在对话框中输入:

    trac-admin d:\trac\mss changeset modified "%1" "%2"

     这样每次提交的时候会通知trac进行版本库同步操作。

     在trac.ini中[components]段添加:

    tracopt.ticket.commit_updater.= enabled

     这将允许通过SVN提交信息来更新任务单。

    例如:

    Refs #123 将引用任务单#123
    Fixes #123 将引用并把任务单#123状态修改为closed

  • 相关阅读:
    2020十一届蓝桥杯-七月省赛题解
    ES6 Generator与C#迭代器
    .NET Core微服务部分知识点
    js点击图片传给一个空的div内放大显示
    Jmeter 中 CSV 如何参数化测试数据并实现自动断言
    安装nvidia-docker2报错E: Unable to locate package nvidia-docker2
    微信小程序-点击事件传递参数
    2020牛客暑期多校训练营(第八场)I Interesting Computer Game K Kabaleo Lite
    Count the Colors
    Basic Gcd Problem
  • 原文地址:https://www.cnblogs.com/xwing/p/2026526.html
Copyright © 2020-2023  润新知