Obtain svn_fs_t via svn_repos_open() -> svn_repos_fs()
authorRocco Rutte <pdmef@gmx.net>
Wed, 14 Mar 2007 15:35:33 +0000 (15:35 +0000)
committerRocco Rutte <pdmef@gmx.net>
Wed, 14 Mar 2007 15:35:33 +0000 (15:35 +0000)
Without really knowing the svn API, using plain svn_fs_open() complained
about a missing /foo/DB_CONFIG even on fsfs type repos. Use
svn_repos_open() to open the repo and use svn_repos_fs() to get the fs
instead of using svn_fs_open() since even the headers say I wouldn't
want to use it directly... and they're right, obviously. :)

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
Makefile
svn-fast-export.c

index 8242b6f..8a4efd9 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 SVN ?= /usr/local/svn
 APR_INCLUDES ?= /usr/include/apr-1.0
 CFLAGS += -I${APR_INCLUDES} -I${SVN}/include/subversion-1 -pipe -O2 -std=c99
-LDFLAGS += -L${SVN}/lib -lsvn_fs-1
+LDFLAGS += -L${SVN}/lib -lsvn_fs-1 -lsvn_repos-1
 
 all: svn-fast-export svn-archive
 
index 2d71627..34e7fc6 100644 (file)
@@ -23,6 +23,7 @@
 #include <apr_general.h>
 
 #include <svn_fs.h>
+#include <svn_repos.h>
 #include <svn_pools.h>
 #include <svn_types.h>
 
@@ -141,12 +142,15 @@ int crawl_revisions(char *repos_path)
 {
     apr_pool_t   *pool, *subpool;
     svn_fs_t     *fs;
+    svn_repos_t  *repos;
     svn_revnum_t youngest_rev, min_rev, max_rev, rev;
 
     pool = svn_pool_create(NULL);
 
     SVN_ERR(svn_fs_initialize(pool));
-    SVN_ERR(svn_fs_open(&fs, repos_path, NULL, pool));
+    SVN_ERR(svn_repos_open(&repos, repos_path, pool));
+    if ((fs = svn_repos_fs(repos)) == NULL)
+        return -1;
     SVN_ERR(svn_fs_youngest_rev(&youngest_rev, fs, pool));
 
     min_rev = 1;