tags:

views:

1063

answers:

2

I just upgraded to SVN 1.6.1 from 1.4, and in the various docs, it is recommended to run svnadmin upgrade and compile svn-populate-node-origins-index.c and run them on the repos to generate node-origins records that should speed up in svn-log processing.

svnadmin upgrade went fine and swift, h owever I have trouble compiling it (FC11). Any pointers before I go on a wild goose chase?

A: 

I never really had the need to compile svn-populate-node-origins-index.c but I usually simply run the svnadmin upgrade command.

Could you provide some reference for svn-populate-node-origins-index.c? The official release note provides the following instructions:

Repository Upgrades

The Subversion 1.6 server works with 1.5 and older repositories, and it will not upgrade such repositories to 1.6 unless specifically requested to via the svnadmin upgrade command. This means that some of the new 1.6 features will not become available simply by upgrading your server: you will also have to upgrade your repositories. (We decided not to auto-upgrade repositories because we didn't want 1.6 to silently make repositories unusable by 1.5 — that step should be a conscious decision on the part of the repository admin.)

Simone Carletti
I wanted to experiment with mergetracking, so needed at least 1.5, while I had 1.4. I can't find the exact link anymore (but know it was on collab.net, and had similar remarks as http://svn.haxx.se/users/archive-2008-12/0238.shtml)IOW it is used to speed up logs when you use mergetracking.
Marco van de Voort
+3  A: 

To compile svn-populate-node-origins-index:

  • install subversion-devel RPM packages.
  • configure source subversion start make and nick the cmdline (see below for what I found). Once you have it you can abort the compiling To do this I had to install sqlite-devel that is somehow not included in subversion-devel. (different configuration of the backend?)

    Not doing this will probably get you stranded on some off64_t problem. (probably the -DLARGEFILE64_SOURCE below)

  • trial and error adding libraries based on header names in the source file.
  • FC seems to suffix headers and libraries with 1, which I assume is the major version

The resulting commandline then became.

gcc -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -g -O2 -pthread - I/usr/include/subversion-1/ -I/usr/include/apr-1 svn-populate-node-origins-index.c -lapr-1 -lsvn_repos-1

Running this went fine, it lists the numbers of entries found, and indeed on the more branched and merged repo's it finds more.

After this, I also had to review some filesystem permissions in the various repositories, for the newly generated directories and files. (apparantly g+s wasn't everywhere to make it automatic)

Marco van de Voort