1

我正在尝试在我的服务器上设置 Trac 并成功安装它,编译字节码并运行 tracd 服务器。唯一的问题是它没有读取我的 SVN 存储库。

我收到的错误是:

警告:无法与存储库同步(无法打开 Subversion 存储库 /data1/repos: SubversionException: ("Expected FS format '2'; found format '4'", 160043))。查看 Trac 日志以获取更多信息。

(是的,我的单个存储库位于一个名为“repos”的文件夹中 - 我没有设置那个位)

trac.ini看起来像这样:

repository_dir = /data1/repos
repository_type = svn

我正在运行:Trac 0.11.5、Python 2.4.3、Collabnet SVN 1.6.5、SWIG 1.3.29

4

4 回答 4

3

你的 python svn 库更新了吗?听起来很陈旧。

于 2009-11-16T05:12:04.717 回答
3

你应该确保 python 绑定匹配你的 SVN 版本。

要获得绑定,您可以使用 SVN 源代码并编译包装器,安装概述了如何构建该绑定的过程。

首先你必须下载svn

在 UNIX 上为 SVN 构建 SWIG 绑定

在构建 swig 绑定之后

第 1 步:安装合适的 SWIG 版本(目前是 swig 版本 1.3.24 - 1.3.31)。

* Perhaps your distribution packages a suitable version - if it

确实安装它,并跳到本节的最后一个要点。

* Go to http://www.swig.org/, download the source tarball, and

打开包装。

* In the SWIG-1.3.xx directory, run ./configure.

    If you plan to build the Python bindings, and have a system
    with more than one version of Python installed, you may need
    to pass

         --with-python=/path/to/correct/python/binary

    to the configure script.  You need Python 2.4 or above.

    If you plan to build the Perl bindings, and have a system
    with more than one version of perl installed, you may need
    to pass

         --with-perl5=/path/to/correct/perl/binary

    to the configure script.  You need Perl 5.8.0 or above.

* Build and install.

    Run 'make && make install'

* To verify you have SWIG installed correctly, run "swig

-version”。SWIG 应该报告它是 1.3.24 或更高版本。

然后是python的东西

第 3 步:安装特定语言绑定

  • Python

    1. 从 Subversion 源代码树的顶部运行“make swig-py”来构建绑定。

      (这将在 *.i 文件上调用 SWIG,从而生成 .c 源文件的集合。然后它将编译这些 .c 文件并将其链接到 Python 库中。)

    2. 从 Subversion 源代码树的顶部运行“make check-swig-py”,以测试绑定

    3. 从 Subversion 源代码树的顶部运行“make install-swig-py”(通常以 root 身份)。这会将您的新 Python 库复制到适当的系统位置。

      注意:如果您无权安装 Python 的 site-packages 目录,则可以将 Python 模块安装到您的主目录。你可以通过运行'make install-swig-py swig_pydir=~'来做到这一点。

      注意:如果要安装到备用前缀(通常仅在构建软件包时),可以在此处提供前缀。为构建 rpm 执行此操作的示例类似于“make install-swig-py DESTDIR=$RPM_BUILD_ROOT/usr”。

    4. 确保安装绑定的任何目录都在您的 Python 搜索路径中。该目录取决于您的安装方式;一个典型的位置是 /usr/local/lib/svn-python/。

      有几种方法可以做到这一点。请参阅 Python 的“sys.path”和“PYTHONPATH”文档。一个很好的方法是: $ echo /usr/local/lib/svn-python \

      /usr/lib/python2.x/site-packages/subversion.pth

      您可能还需要更新操作系统的动态链接器配置,以使 Python 能够加载这些新库。在某些系统上,这是通过运行“ldconfig”来完成的。

于 2009-11-16T05:13:44.113 回答
2

可能是 Subversion Python 绑定是针对过旧版本的 Subversion 编译的,但鉴于 FS 格式 2 是1.0 之前的版本,可能还有其他问题。您可以像这样获得 Subversion 客户端库版本:

>>> import svn.client
>>> svn.client.svn_client_version().major
1
>>> svn.client.svn_client_version().minor
6
>>> svn.client.svn_client_version().patch
5
于 2009-11-16T05:15:10.570 回答
0

看起来这些人非常彻底地回答了您的问题,但仅供参考:设置日志文件,以便您可以在下一个问题时阅读它。在你的 trac.ini 某处:

[logging]
log_file = trac.log
# log_format = <inherited>
log_level = DEBUG
log_type = file

之后,如果可能,尝试将 trac 部署到 apache - 使用 mod_python 或 FastCGI,trac 文档说它比运行 tracd 快得多。

于 2009-11-19T06:46:58.257 回答