You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Bert Huijben <be...@qqmail.nl> on 2010/04/14 13:59:50 UTC

RE: 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


> -----Original Message-----
> From: philip@apache.org [mailto:philip@apache.org]
> Sent: woensdag 14 april 2010 15:06
> To: commits@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

Re: 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

Posted by Greg Stein <gs...@gmail.com>.
On Wed, Apr 14, 2010 at 10:52, Philip Martin <ph...@wandisco.com> wrote:
> Greg Stein <gs...@gmail.com> writes:
>
>> I've got a patch coming up...
>
> Hmm...
>
> $ (cd ../src && ./gen-make.py)
> WARNING: "internal_statements.h" header not found, file subversion/libsvn_subr/sqlite.c
> $ (cd ../src && ./gen-make.py)
> $
>
> The first build-outputs.mk doesn't list internal_statements.h as a
> dependency of sqlite.lo.  Can gen-make generate the sqlite headers
> before determining dependencies?  If not should autogen.sh run
> gen-make twice?

Fixed in r933981

Re: 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

Posted by Philip Martin <ph...@wandisco.com>.
Greg Stein <gs...@gmail.com> writes:

> I've got a patch coming up...

Hmm...

$ (cd ../src && ./gen-make.py)
WARNING: "internal_statements.h" header not found, file subversion/libsvn_subr/sqlite.c
$ (cd ../src && ./gen-make.py)
$

The first build-outputs.mk doesn't list internal_statements.h as a
dependency of sqlite.lo.  Can gen-make generate the sqlite headers
before determining dependencies?  If not should autogen.sh run
gen-make twice?

-- 
Philip

Re: 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

Posted by Greg Stein <gs...@gmail.com>.
Fixed in r933969

On Wed, Apr 14, 2010 at 10:27, Greg Stein <gs...@gmail.com> wrote:
> I've got a patch coming up...
>
> On Wed, Apr 14, 2010 at 10:26, Philip Martin <ph...@wandisco.com> wrote:
>> "Bert Huijben" <be...@qqmail.nl> writes:
>>
>>>> --- 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.
>>
>> It's the Subversion specific file generated from sqlite.sql.  Perhaps
>> I should use a different name?
>>
>> --
>> Philip
>>
>

Re: 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

Posted by Greg Stein <gs...@gmail.com>.
I've got a patch coming up...

On Wed, Apr 14, 2010 at 10:26, Philip Martin <ph...@wandisco.com> wrote:
> "Bert Huijben" <be...@qqmail.nl> writes:
>
>>> --- 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.
>
> It's the Subversion specific file generated from sqlite.sql.  Perhaps
> I should use a different name?
>
> --
> Philip
>

Re: 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

Posted by Philip Martin <ph...@wandisco.com>.
"Bert Huijben" <be...@qqmail.nl> writes:

>> --- 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.

It's the Subversion specific file generated from sqlite.sql.  Perhaps
I should use a different name?

-- 
Philip