Author: danielsh
Date: Thu Dec 2 23:13:12 2010
New Revision: 1041633
URL: http://svn.apache.org/viewvc?rev=1041633&view=rev
Log:
Change the returned error code in case of an error, and use that
to prevent false errors in -DPACK_AFTER_EVERY_COMMIT-guarded code.
* subversion/libsvn_fs_fs/fs_fs.c
(pack_body):
Return SVN_ERR_UNSUPPORTED_FEATURE instead of SVN_ERR_FS_UNSUPPORTED_FORMAT.
(I assume the latter means "We don't know what to do with this format
number",
as opposed to "We know this format and it doesn't support <this> feature".)
* subversion/libsvn_fs/fs-loader.c
(svn_fs_commit_txn):
Within a PACK_AFTER_EVERY_COMMIT-guarded block, ignore "Filesystem too
old; doesn't support packing" errors.
Modified:
subversion/trunk/subversion/libsvn_fs/fs-loader.c
subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
Modified: subversion/trunk/subversion/libsvn_fs/fs-loader.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs/fs-loader.c?rev=1041633&r1=1041632&r2=1041633&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs/fs-loader.c (original)
+++ subversion/trunk/subversion/libsvn_fs/fs-loader.c Thu Dec 2 23:13:12 2010
@@ -684,7 +684,15 @@ svn_fs_commit_txn(const char **conflict_
SVN_ERR(txn->vtable->commit(conflict_p, new_rev, txn, pool));
#ifdef PACK_AFTER_EVERY_COMMIT
- SVN_ERR(svn_fs_pack(fs_path, NULL, NULL, NULL, NULL, pool));
+ {
+ svn_error_t *err = svn_fs_pack(fs_path, NULL, NULL, NULL, NULL, pool);
+ if (err && err->apr_err == SVN_ERR_UNSUPPORTED_FEATURE)
+ /* Pre-1.6 filesystem. */
+ svn_error_clear(err);
+ else if (err)
+ /* Real error. */
+ return svn_error_return(err);
+ }
#endif
return SVN_NO_ERROR;
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=1041633&r1=1041632&r2=1041633&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c Thu Dec 2 23:13:12 2010
@@ -7727,8 +7727,9 @@ pack_body(void *baton,
/* If the repository isn't a new enough format, we don't support packing.
Return a friendly error to that effect. */
if (format < SVN_FS_FS__MIN_PACKED_FORMAT)
- return svn_error_create(SVN_ERR_FS_UNSUPPORTED_FORMAT, NULL,
- _("FS format too old to pack, please upgrade."));
+ return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+ _("FSFS format (%d) too old to pack, please upgrade."),
+ format);
/* If we aren't using sharding, we can't do any packing, so quit. */
if (!max_files_per_dir)