> -----Original Message----- > From: phi...@apache.org [mailto:phi...@apache.org] > Sent: woensdag 14 april 2010 15:06 > To: comm...@subversion.apache.org > Subject: svn commit: r933938 - in /subversion/trunk: build.conf > subversion/include/private/svn_sqlite.h subversion/libsvn_fs_fs/fs_fs.c > subversion/libsvn_subr/sqlite.c subversion/libsvn_subr/sqlite.sql > > Author: philip > Date: Wed Apr 14 13:05:56 2010 > New Revision: 933938 > > URL: http://svn.apache.org/viewvc?rev=933938&view=rev > Log: > Partial fix for issue 3596 (hotcopy and SQLite databases). > > * subversion/include/private/svn_sqlite.c (svn_sqlite__hotcopy): New. > > * subversion/libsvn_subr/sqlite.c (svn_sqlite__hotcopy): New. > > * subversion/libsvn_subr/sqlite.sql: New file. > > * build.conf (subr_sqlite): New. > > * subversion/libsvn_fs_fs/fs_fs.c > (svn_fs_fs__hotcopy): Hotcopy rep cache, do it before the rev files. > > Added: > subversion/trunk/subversion/libsvn_subr/sqlite.sql > Modified: > subversion/trunk/build.conf > subversion/trunk/subversion/include/private/svn_sqlite.h > subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c > subversion/trunk/subversion/libsvn_subr/sqlite.c > > Modified: subversion/trunk/build.conf > URL: > http://svn.apache.org/viewvc/subversion/trunk/build.conf?rev=933938&r1= > 933937&r2=933938&view=diff > ========================================================== > ==================== > --- subversion/trunk/build.conf (original) > +++ subversion/trunk/build.conf Wed Apr 14 13:05:56 2010 > @@ -380,6 +380,12 @@ type = sql-header > path = subversion/libsvn_wc > sources = wc-checks.sql > > +[subr_sqlite] > +description = Subversion SQLite interface > +type = sql-header > +path = subversion/libsvn_subr > +sources = sqlite.sql > + > > # > ---------------------------------------------------------------------------- > # > > Modified: subversion/trunk/subversion/include/private/svn_sqlite.h > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private > /svn_sqlite.h?rev=933938&r1=933937&r2=933938&view=diff > ========================================================== > ==================== > --- subversion/trunk/subversion/include/private/svn_sqlite.h (original) > +++ subversion/trunk/subversion/include/private/svn_sqlite.h Wed Apr 14 > 13:05:56 2010 > @@ -310,6 +310,12 @@ svn_sqlite__with_transaction(svn_sqlite_ > void *cb_baton, apr_pool_t *scratch_pool); > > > +/* Hotcopy an SQLite database from SRC_PATH to DST_PATH. */ > +svn_error_t * > +svn_sqlite__hotcopy(const char *src_path, > + const char *dst_path, > + apr_pool_t *scratch_pool); > + > #ifdef __cplusplus > } > #endif /* __cplusplus */ > > Modified: subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/fs > _fs.c?rev=933938&r1=933937&r2=933938&view=diff > ========================================================== > ==================== > --- subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c (original) > +++ subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c Wed Apr 14 13:05:56 > 2010 > @@ -1498,6 +1498,14 @@ svn_fs_fs__hotcopy(const char *src_path, > /* Copy the config. */ > SVN_ERR(svn_io_dir_file_copy(src_path, dst_path, PATH_CONFIG, pool)); > > + /* Copy the rep cache before copying the rev files to make sure all > + cached references will be present in the copy. */ > + src_subdir = svn_dirent_join(src_path, REP_CACHE_DB_NAME, pool); > + dst_subdir = svn_dirent_join(dst_path, REP_CACHE_DB_NAME, pool); > + SVN_ERR(svn_io_check_path(src_subdir, &kind, pool)); > + if (kind == svn_node_file) > + SVN_ERR(svn_sqlite__hotcopy(src_subdir, dst_subdir, pool)); > + > /* Copy the min unpacked rev, and read its value. */ > if (format >= SVN_FS_FS__MIN_PACKED_FORMAT) > { > @@ -1658,12 +1666,6 @@ svn_fs_fs__hotcopy(const char *src_path, > PATH_NODE_ORIGINS_DIR, TRUE, NULL, > NULL, pool)); > > - /* Now copy the rep cache. */ > - src_subdir = svn_dirent_join(src_path, REP_CACHE_DB_NAME, pool); > - SVN_ERR(svn_io_check_path(src_subdir, &kind, pool)); > - if (kind == svn_node_file) > - SVN_ERR(svn_io_dir_file_copy(src_path, dst_path, > REP_CACHE_DB_NAME, pool)); > - > /* Copy the txn-current file. */ > if (format >= SVN_FS_FS__MIN_TXN_CURRENT_FORMAT) > SVN_ERR(svn_io_dir_file_copy(src_path, dst_path, PATH_TXN_CURRENT, > pool)); > > Modified: subversion/trunk/subversion/libsvn_subr/sqlite.c > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/sqli > te.c?rev=933938&r1=933937&r2=933938&view=diff > ========================================================== > ==================== > --- subversion/trunk/subversion/libsvn_subr/sqlite.c (original) > +++ subversion/trunk/subversion/libsvn_subr/sqlite.c Wed Apr 14 13:05:56 > 2010 > @@ -28,6 +28,7 @@ > #include "svn_io.h" > #include "svn_dirent_uri.h" > #include "svn_checksum.h" > +#include "sqlite.h"
Why did you add this include? A normal sqlite amalgamation has only sqlite3.c, sqlite3.h and sqlite3ext.h. This adds a dependency to another sqlite distribution format. Bert