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 2013/01/25 11:10:20 UTC

svn commit: r1438412 - in /subversion/branches/fsfs-format7/subversion/libsvn_fs_fs: low_level.c low_level.h transaction.c

Author: stefan2
Date: Fri Jan 25 10:10:19 2013
New Revision: 1438412

URL: http://svn.apache.org/viewvc?rev=1438412&view=rev
Log:
On the fsfs-format7 branch:  Ensure that changes lists are always
terminated by an extra empty line.  In format 6 and earlier,  this
was done implicitly by the revision trailer (no longer present in
format 7).

* subversion/libsvn_fs_fs/low_level.h
  (svn_fs_fs__write_changes): add flag to be set when writing the
   last entry(ies)

* subversion/libsvn_fs_fs/low_level.c
  (svn_fs_fs__unparse_revision_trailer): don't write the extra newline
  (svn_fs_fs__write_changes): write it here instead

* subversion/libsvn_fs_fs/transaction.c
  (svn_fs_fs__add_change,
   write_final_changed_path_info): update callers

Modified:
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.h
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c

Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.c?rev=1438412&r1=1438411&r2=1438412&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.c Fri Jan 25 10:10:19 2013
@@ -166,7 +166,7 @@ svn_fs_fs__unparse_revision_trailer(apr_
                                     apr_pool_t *pool)
 {
   return svn_stringbuf_createf(pool,
-                               "\n%" APR_OFF_T_FMT " %" APR_OFF_T_FMT "\n",
+                               "%" APR_OFF_T_FMT " %" APR_OFF_T_FMT "\n",
                                root_offset,
                                changes_offset);
 }
@@ -967,6 +967,7 @@ svn_error_t *
 svn_fs_fs__write_changes(svn_stream_t *stream,
                          svn_fs_t *fs,
                          apr_hash_t *changes,
+                         svn_boolean_t terminate_list,
                          apr_pool_t *pool)
 {
   apr_pool_t *iterpool = svn_pool_create(pool);
@@ -1016,6 +1017,9 @@ svn_fs_fs__write_changes(svn_stream_t *s
                                  iterpool));
     }
 
+  if (terminate_list)
+    svn_stream_puts(stream, "\n");
+  
   svn_pool_destroy(iterpool);
 
   return SVN_NO_ERROR;

Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.h?rev=1438412&r1=1438411&r2=1438412&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.h (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/low_level.h Fri Jan 25 10:10:19 2013
@@ -143,5 +143,6 @@ svn_error_t *
 svn_fs_fs__write_changes(svn_stream_t *stream,
                          svn_fs_t *fs,
                          apr_hash_t *changes,
+                         svn_boolean_t terminate_list,
                          apr_pool_t *pool);
 

Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c?rev=1438412&r1=1438411&r2=1438412&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c Fri Jan 25 10:10:19 2013
@@ -1587,7 +1587,7 @@ svn_fs_fs__add_change(svn_fs_t *fs,
 
   apr_hash_set(changes, path, APR_HASH_KEY_STRING, change);
   SVN_ERR(svn_fs_fs__write_changes(svn_stream_from_aprfile2(file, TRUE, pool),
-                                   fs, changes, pool));
+                                   fs, changes, FALSE, pool));
 
   return svn_io_file_close(file, pool);
 }
@@ -2825,7 +2825,7 @@ write_final_changed_path_info(apr_off_t 
   SVN_ERR(svn_fs_fs__txn_changes_fetch(&changed_paths, fs, txn_id, pool));
 
   SVN_ERR(svn_fs_fs__write_changes(svn_stream_from_aprfile2(file, TRUE, pool),
-                                   fs, changed_paths, pool));
+                                   fs, changed_paths, TRUE, pool));
 
   *offset_p = offset;