Stefan Sperling wrote: > On Sat, Oct 29, 2011 at 06:45:50AM -0500, Jonathan Nieder wrote:
>> [[[ >> The actual ABI compatibility of sqlite3 doesn't depend on the patchlevel >> (the x in 3.7.x), so stop being picky about the patchlevel when checking >> the version number at runtime. This avoids spurious errors of the form >> "svn: Couldn't perform atomic initialization" / "svn: SQLite compiled >> for 3.7.4, but running with 3.7.3" when sqlite gets a minor update >> without Subversion being rebuilt to match. > > Shouldn't the version numbers in your example be the other way around? No, my description was just bogus. This is not about when sqlite gets a minor update, but rather when either A. sqlite gets downgraded in a minor way, or, more likely, B. subversion is installed using pre-built binaries that were built against a slightly newer version of sqlite. >> --- subversion/libsvn_subr/sqlite.c (revision 1194866) >> +++ subversion/libsvn_subr/sqlite.c (working copy) >> @@ -606,7 +606,7 @@ static volatile svn_atomic_t sqlite_init_state = 0 >> static svn_error_t * >> init_sqlite(void *baton, apr_pool_t *pool) >> { >> - if (sqlite3_libversion_number() < SQLITE_VERSION_NUMBER) >> + if (sqlite3_libversion_number()/1000 < SQLITE_VERSION_NUMBER/1000) This test was already a '<' rather than '!=' so minor sqlite updates were already handled fine. Thanks for the sanity check. I'll sleep on this for now, planning to resend with a new log message and some other tweaks tomorrow.