Stefan2, I'm posting this attempt to add more detail to some of the FSFS
caching doc strings.  It's incomplete but I've had this sitting in my WC
for a couple of weeks now and am unlikely to look deeper in the short
term.

[[[
Index: subversion/libsvn_fs_fs/fs.h
===================================================================
--- subversion/libsvn_fs_fs/fs.h        (revision 1135952)
+++ subversion/libsvn_fs_fs/fs.h        (working copy)
@@ -238,8 +238,12 @@ typedef struct fs_fs_data_t
      rep key to svn_string_t. */
   svn_cache__t *fulltext_cache;
 
-  /* Pack manifest cache; maps revision numbers to offsets in their respective
-     pack files. */
+  /* Pack manifest cache; a cache mapping (svn_revnum_t) shard number to
+     a manifest; and a manifest is a mapping from (svn_revnum_t) revision
+     number offset within a shard to (apr_off_t) byte-offset in the
+     respective pack file.
+     ### Is this right?
+    */
   svn_cache__t *packed_offset_cache;
 
   /* Cache for txdelta_window_t objects; the key is (revFilePath, offset) */
Index: subversion/libsvn_fs_fs/temp_serializer.h
===================================================================
--- subversion/libsvn_fs_fs/temp_serializer.h   (revision 1135952)
+++ subversion/libsvn_fs_fs/temp_serializer.h   (working copy)
@@ -93,8 +93,8 @@ svn_fs_fs__deserialize_txdelta_window(vo
                                       apr_pool_t *pool);
 
 /**
- * Implements #svn_cache__serialize_func_t for manifests
- * (#apr_array_header_t).
+ * Implements #svn_cache__serialize_func_t for a manifest
+ * (@a in is an #apr_array_header_t of apr_off_t elements).
  */
 svn_error_t *
 svn_fs_fs__serialize_manifest(char **data,
@@ -103,8 +103,8 @@ svn_fs_fs__serialize_manifest(char **dat
                               apr_pool_t *pool);
 
 /**
- * Implements #svn_cache__deserialize_func_t for manifests
- * (#apr_array_header_t).
+ * Implements #svn_cache__deserialize_func_t for a manifest
+ * (@a *out is an #apr_array_header_t of apr_off_t elements).
  */
 svn_error_t *
 svn_fs_fs__deserialize_manifest(void **out,
@@ -167,8 +167,13 @@ svn_fs_fs__deserialize_dir_entries(void
                                    apr_pool_t *pool);
 
 /**
- * Implements #svn_cache__partial_getter_func_t for a single element
- * identified by its offset in @a baton within a serialized manifest array.
+ * Implements #svn_cache__partial_getter_func_t.
+ * Set @a *out to the (apr_off_t) byte-offset within a pack file of the
+ * revision 
+ * Set (apr_off_t) @a *out to the element
+ * indexed by (apr_int64_t) @a *baton within the serialized manifest array
+ * @a data and @a data_len.
+ * ### Caller thinks *out is apr_off_t; impl thinks it is apr_int64_t.
  */
 svn_error_t *
 svn_fs_fs__get_sharded_offset(void **out,
@@ -180,7 +185,7 @@ svn_fs_fs__get_sharded_offset(void **out
 /**
  * Implements #svn_cache__partial_getter_func_t for a single 
  * #svn_fs_dirent_t within a serialized directory contents hash,
- * identified by its name in @a baton.
+ * identified by its name (const char @a *baton).
  */
 svn_error_t *
 svn_fs_fs__extract_dir_entry(void **out,
]]]

- Julian


Reply via email to