You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2015/05/18 05:36:55 UTC
svn commit: r1679922 -
/subversion/trunk/subversion/libsvn_fs_fs/transaction.c
Author: stefan2
Date: Mon May 18 03:36:54 2015
New Revision: 1679922
URL: http://svn.apache.org/r1679922
Log:
In FSFS in-txn directory update code, reorder operations to make the
next patch slightly smaller.
* subversion/libsvn_fs_fs/transaction.c
(svn_fs_fs__set_entry): First update the on-disk representation and
then the cache. This will allow us to update
the filesize as well in later patches.
Modified:
subversion/trunk/subversion/libsvn_fs_fs/transaction.c
Modified: subversion/trunk/subversion/libsvn_fs_fs/transaction.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/transaction.c?rev=1679922&r1=1679921&r2=1679922&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/transaction.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/transaction.c Mon May 18 03:36:54 2015
@@ -1526,10 +1526,30 @@ svn_fs_fs__set_entry(svn_fs_t *fs,
{
/* The directory rep is already mutable, so just open it for append. */
SVN_ERR(svn_io_file_open(&file, filename, APR_WRITE | APR_APPEND,
- APR_OS_DEFAULT, pool));
- out = svn_stream_from_aprfile2(file, TRUE, pool);
+ APR_OS_DEFAULT, subpool));
+ out = svn_stream_from_aprfile2(file, TRUE, subpool);
}
+ /* Append an incremental hash entry for the entry change. */
+ if (id)
+ {
+ svn_fs_dirent_t entry;
+ entry.name = name;
+ entry.id = id;
+ entry.kind = kind;
+
+ SVN_ERR(unparse_dir_entry(&entry, out, subpool));
+ }
+ else
+ {
+ SVN_ERR(svn_stream_printf(out, subpool, "D %" APR_SIZE_T_FMT "\n%s\n",
+ strlen(name), name));
+ }
+
+ /* Flush APR buffers. */
+ SVN_ERR(svn_io_file_close(file, subpool));
+ svn_pool_clear(subpool);
+
/* if we have a directory cache for this transaction, update it */
if (ffd->txn_dir_cache)
{
@@ -1554,25 +1574,7 @@ svn_fs_fs__set_entry(svn_fs_t *fs,
svn_fs_fs__replace_dir_entry, &baton,
subpool));
}
- svn_pool_clear(subpool);
-
- /* Append an incremental hash entry for the entry change. */
- if (id)
- {
- svn_fs_dirent_t entry;
- entry.name = name;
- entry.id = id;
- entry.kind = kind;
- SVN_ERR(unparse_dir_entry(&entry, out, subpool));
- }
- else
- {
- SVN_ERR(svn_stream_printf(out, subpool, "D %" APR_SIZE_T_FMT "\n%s\n",
- strlen(name), name));
- }
-
- SVN_ERR(svn_io_file_close(file, subpool));
svn_pool_destroy(subpool);
return SVN_NO_ERROR;
}