It looks like you are using a wrong version of Subversion on the
server, a version that does not match the version that has been used
to create and manage the repository.
Did you move your SVN repository using a "raw" method (save/restore
SVN directories), or did you use the "proper" method (svnadmin dump &
svnadmin load) ?
I don't remember which SVN FS version numbering scheme, but it's something like:
FS v2: SVN 1.4
FS v3: SVN 1.5 (+upgrade)
FS v4: SVN 1.6 (+upgrade)
Cross check that the Subversion Python binding you use do match the
SVN repository FS format.
HTH
Manu
These commands do not built the Python bindings, see:
make swig-py
make swig-py-install
Are you sure your system does not have an older version of the Python
bindings that could be loaded and used instead of the one you built?
Try loading SVN bindings from Python interactive command prompt and
get the actual SVN library revision
python
import svn.core
print "%d.%d.%d" % (svn.core.SVN_VER_MAJOR, svn.core.SVN_VER_MINOR,
svn.core.SVN_VER_MICRO)
be sure to run "python" with the same uid as the web server.
> Doing so yields the following result:
> 1.4.2
This means that the SVN bindings you use come from SVN 1.4.2, which
may not use a SVN FSFS repository created/upgraded with SVN 1.5.x
> if I do "yum list subversion" it also reports 1.4.2???
No idea, I don't use this package manager.
> could there be multiple subversions installed on the server in
> different locations (I know this is the trac user group...) and
> different things are pulling from different installations??
Yes.
You may have Subversion command tools for 1.5, and Subversion python
bindings for 1.4 on the same machine.
The first ones are located by the system using the PATH environment
variable, while the second ones are located using the PYTHONPATH
environment variable.
Time to search for "libsvn" directory using the 'find' tool...
Cheers,
Manu
If sys.path points to one the previously installed SVN python
bindings, then your own built bindings will never be loaded.
Cheers,
Manu
> there is a swig executable in /usr/local/bin (same place as svn
> executables) that returns version 1.3.25 which is what I built... or
> are there shard object libraries in use for the bindings?
SWIG is only required to *build* the bindings, not to run them.
The SWIG version only matters when you build the bindings.
> I have also tried removing that PYTHONPATH statement from the
> trac.conf file and end up with the same result...
You could try to add the path to your bindings before sys.path, not after
> is that svn-python directory the correct place to have python looking
> for the bindings?
I guess that LD_LIBRARY_PATH also matters to locate the .so part of
the bindings.
> appreciate all your help... first time an issue has come up with trac/
> svn installs and first time dealing with bindings? ;)
Do you really need to rebuild SVN? Is there no way to add the packages
with your favorite package manager?
Cheers,
Manu
Not even, as the generated bindings are shipped in the Subversion source
tarball.
You only need SWIG when building Subversion from a source checkout, or
when you want to modify the .i files.
So most of the time (including in this situation) SWIG doesn't even come
into the picture.
IIRC, the advice from the TracSubversion page comes from a time when the
generated bindings /weren't/ shipped (the 1.2.x / 1.3.x period, again IIRC).
I'd suggest to the original poster to follow the steps in
http://trac.edgewall.org/wiki/TracSubversion#Checklist in particular step 3.
-- Christian