Trac 0.12添加多SVN仓库:环境支持及操作步骤验证
嘿,刚好对Trac 0.12的多仓库配置熟得很,来给你详细说说~
首先明确回答:Trac 0.12完全支持将多个SVN仓库连接到同一个Trac环境,这正是该版本的核心特性之一,不用再为每个仓库单独搭建独立的Trac环境,省心不少。
接下来逐个分析你提到的操作是否正确:
操作1:通过Web GUI添加名为repo2的新仓库并指定其路径
这个操作是完全正确的。在Trac的Web管理后台,找到「Repositories」板块,点击新增仓库,填写仓库名称repo2,并指定对应的SVN仓库本地路径(注意要确保Trac运行进程对该路径有读取权限),保存后就完成了仓库的基础配置。操作2:执行
svnadmin repository resync repo2
这里有个小错误哦,正确的命令应该是用Trac的管理工具trac-admin来执行,而不是SVN的svnadmin。完整命令格式是:trac-admin /path/to/your/trac/env repository resync repo2其中
/path/to/your/trac/env是你的Trac环境所在的本地路径,这个命令的作用是让Trac重新同步repo2的版本历史,确保仓库里的所有变更都能被Trac识别并展示。操作3:添加提交后钩子
这个思路是对的,为了让repo2的提交能实时同步到Trac,需要给repo2配置SVN的post-commit钩子脚本。脚本里要调用Trac的同步命令,比如你提到的基于Python的调用,完整的钩子脚本(Windows环境下一般是.bat文件)大概是这样的:@echo off set TRAC_ENV=C:\path\to\your\trac\env set REPO=repo2 C:\Python27\python.exe C:\Python27\Scripts\trac-admin.exe "%TRAC_ENV%" changeset added "%REPO%" "%2"把路径替换成你实际的Trac环境路径和Python路径,这样每次在repo2提交代码后,钩子会自动触发Trac同步该次变更记录,保证Trac里的信息是最新的。
内容的提问来源于stack exchange,提问作者Tobbes

