一开始我遇到了重复数据库条目错误,在尝试修复它时,我根本无法重新同步我的 Trac 数据库。无法导入所有历史记录,我尝试从 0.12 升级到 1.0.1,但现在当我运行同步时,要么什么都没有发生,要么我收到错误TracError: Unsupported version control system "svn": cannot import name fs
。
尝试重新同步所有存储库没有任何效果
[/var/trac/repo]# trac-admin . repository resync "*"
Done.
指定 repo 会返回错误
[/var/trac/repo]# trac-admin . repository resync "MyRepo"
TracError: Unsupported version control system "svn": cannot import name fs
错误最初显示“svn”,但运行后pip install svn
我到达了现在的位置,但却pip install fs
无法摆脱这个错误。
尝试过:
- 更换为旧款 Trac
easy_install Trac==0.12
并重新更换easy_install Trac==1.0.1
- 使用 pip 安装依赖项:
pip install svn
,pip install fs
- 尝试运行“resync”和“sync”命令。
系统:
- CentOS 5.10
- 蟒蛇2.7.5
- Trac 1.0.1
答案1
我终于能够通过从系统默认的 python 2.4 站点包以及我的 python2.7 中完全删除 Trac 0.12 来实现这一点。我曾经pip
删除Trac
和svn
并yum
删除subversion
。此时,我必须从源代码构建、、pcre
和才能使其正常工作。swig
subversion
svn-python
源文件:
假设 python2.7 安装在 下,/usr/local/bin/python2.7
并且库安装在 下/usr/local/lib/python2.7/site-packages
。
安装 PCRE:
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz
tar -xzvf pcre-8.36.tar.gz
cd pcre-8.36
./configure
make && make install
安装 SWIG(指定--with-python=/path/to/python2.x
):
wget http://prdownloads.sourceforge.net/swig/swig-3.0.2.tar.gz
tar -xzvf swig-3.0.2.tar.gz
cd swig-3.0.2
./configure --with-python=/usr/local/bin/python2.7
make && make install
安装 Subversion(指定PYTHON=/path/to/python2.x
)
wget http://archive.apache.org/dist/subversion/subversion-1.7.9.tar.gz
tar -xzvf subversion-1.7.9.tar.gz
cd subversion-1.7.9
./configure PYTHON=/usr/local/bin/python2.7
make && make install
make swig-py
make check-swig-py
make install-swig-py
echo /usr/local/lib/svn-python \
> /usr/local/lib/python2.7/site-packages/subversion.pth
ldconfig
安装 Trac
pip2.7 install trac
完成后,我能够成功重新同步我的存储库。不要忘记svn
在 Trac 配置中启用它,它在 1.0+ 中不再默认启用。
[root@dev1 ~]# trac-admin /var/trac/myrepo repository resync "MyRepo"
Resyncing repository history for MyRepo...
5827 revisions cached.
Done.