summaryrefslogtreecommitdiff
path: root/subversion/libsvn_fs_fs/fs_fs.h
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/libsvn_fs_fs/fs_fs.h')
-rw-r--r--subversion/libsvn_fs_fs/fs_fs.h500
1 files changed, 110 insertions, 390 deletions
diff --git a/subversion/libsvn_fs_fs/fs_fs.h b/subversion/libsvn_fs_fs/fs_fs.h
index c09f861..b6c94c7 100644
--- a/subversion/libsvn_fs_fs/fs_fs.h
+++ b/subversion/libsvn_fs_fs/fs_fs.h
@@ -25,6 +25,11 @@
#include "fs.h"
+/* Read the 'format' file of fsfs filesystem FS and store its info in FS.
+ * Use SCRATCH_POOL for temporary allocations. */
+svn_error_t *
+svn_fs_fs__read_format_file(svn_fs_t *fs, apr_pool_t *scratch_pool);
+
/* Open the fsfs filesystem pointed to by PATH and associate it with
filesystem object FS. Use POOL for temporary allocations.
@@ -34,166 +39,41 @@ svn_error_t *svn_fs_fs__open(svn_fs_t *fs,
const char *path,
apr_pool_t *pool);
-/* Upgrade the fsfs filesystem FS. Use POOL for temporary allocations. */
-svn_error_t *svn_fs_fs__upgrade(svn_fs_t *fs,
- apr_pool_t *pool);
-
-/* Verify metadata in fsfs filesystem FS. Limit the checks to revisions
- * START to END where possible. Indicate progress via the optional
+/* Upgrade the fsfs filesystem FS. Indicate progress via the optional
* NOTIFY_FUNC callback using NOTIFY_BATON. The optional CANCEL_FUNC
* will periodically be called with CANCEL_BATON to allow for preemption.
* Use POOL for temporary allocations. */
-svn_error_t *svn_fs_fs__verify(svn_fs_t *fs,
- svn_revnum_t start,
- svn_revnum_t end,
- svn_fs_progress_notify_func_t notify_func,
- void *notify_baton,
- svn_cancel_func_t cancel_func,
- void *cancel_baton,
- apr_pool_t *pool);
-
-/* Copy the fsfs filesystem SRC_FS at SRC_PATH into a new copy DST_FS at
- * DST_PATH. If INCREMENTAL is TRUE, do not re-copy data which already
- * exists in DST_FS. Use POOL for temporary allocations. */
-svn_error_t * svn_fs_fs__hotcopy(svn_fs_t *src_fs,
- svn_fs_t *dst_fs,
- const char *src_path,
- const char *dst_path,
- svn_boolean_t incremental,
- svn_cancel_func_t cancel_func,
- void *cancel_baton,
- apr_pool_t *pool);
-
-/* Recover the fsfs associated with filesystem FS.
- Use optional CANCEL_FUNC/CANCEL_BATON for cancellation support.
- Use POOL for temporary allocations. */
-svn_error_t *svn_fs_fs__recover(svn_fs_t *fs,
+svn_error_t *svn_fs_fs__upgrade(svn_fs_t *fs,
+ svn_fs_upgrade_notify_t notify_func,
+ void *notify_baton,
svn_cancel_func_t cancel_func,
void *cancel_baton,
apr_pool_t *pool);
-/* Set *NODEREV_P to the node-revision for the node ID in FS. Do any
- allocations in POOL. */
-svn_error_t *svn_fs_fs__get_node_revision(node_revision_t **noderev_p,
- svn_fs_t *fs,
- const svn_fs_id_t *id,
- apr_pool_t *pool);
-
-/* Store NODEREV as the node-revision for the node whose id is ID in
- FS, after setting its is_fresh_txn_root to FRESH_TXN_ROOT. Do any
- necessary temporary allocation in POOL. */
-svn_error_t *svn_fs_fs__put_node_revision(svn_fs_t *fs,
- const svn_fs_id_t *id,
- node_revision_t *noderev,
- svn_boolean_t fresh_txn_root,
- apr_pool_t *pool);
-
-/* Write the node-revision NODEREV into the stream OUTFILE, compatible with
- filesystem format FORMAT. Only write mergeinfo-related metadata if
- INCLUDE_MERGEINFO is true. Temporary allocations are from POOL. */
-/* ### Currently used only by fs_fs.c */
-svn_error_t *
-svn_fs_fs__write_noderev(svn_stream_t *outfile,
- node_revision_t *noderev,
- int format,
- svn_boolean_t include_mergeinfo,
- apr_pool_t *pool);
-
-/* Read a node-revision from STREAM. Set *NODEREV to the new structure,
- allocated in POOL. */
-/* ### Currently used only by fs_fs.c */
-svn_error_t *
-svn_fs_fs__read_noderev(node_revision_t **noderev,
- svn_stream_t *stream,
- apr_pool_t *pool);
-
-
/* Set *YOUNGEST to the youngest revision in filesystem FS. Do any
temporary allocation in POOL. */
svn_error_t *svn_fs_fs__youngest_rev(svn_revnum_t *youngest,
svn_fs_t *fs,
apr_pool_t *pool);
-/* Return an error iff REV does not exist in FS. */
-svn_error_t *
-svn_fs_fs__revision_exists(svn_revnum_t rev,
- svn_fs_t *fs,
- apr_pool_t *pool);
-
-/* Set *ROOT_ID to the node-id for the root of revision REV in
- filesystem FS. Do any allocations in POOL. */
-svn_error_t *svn_fs_fs__rev_get_root(svn_fs_id_t **root_id,
- svn_fs_t *fs,
- svn_revnum_t rev,
- apr_pool_t *pool);
+/* Return the shard size of filesystem FS. Return 0 for non-shared ones. */
+int
+svn_fs_fs__shard_size(svn_fs_t *fs);
-/* Set *ENTRIES to an apr_hash_t of dirent structs that contain the
- directory entries of node-revision NODEREV in filesystem FS. The
- returned table (and its keys and values) is allocated in POOL,
- which is also used for temporary allocations. */
-svn_error_t *svn_fs_fs__rep_contents_dir(apr_hash_t **entries,
- svn_fs_t *fs,
- node_revision_t *noderev,
- apr_pool_t *pool);
-
-/* Set *DIRENT to the entry identified by NAME in the directory given
- by NODEREV in filesystem FS. If no such entry exits, *DIRENT will
- be NULL. The returned object is allocated in RESULT_POOL; SCRATCH_POOL
- used for temporary allocations. */
+/* Set *MIN_UNPACKED to the oldest non-packed revision in filesystem FS.
+ Do any temporary allocation in POOL. */
svn_error_t *
-svn_fs_fs__rep_contents_dir_entry(svn_fs_dirent_t **dirent,
- svn_fs_t *fs,
- node_revision_t *noderev,
- const char *name,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-/* Set *CONTENTS to be a readable svn_stream_t that receives the text
- representation of node-revision NODEREV as seen in filesystem FS.
- Use POOL for temporary allocations. */
-svn_error_t *svn_fs_fs__get_contents(svn_stream_t **contents,
- svn_fs_t *fs,
- node_revision_t *noderev,
- apr_pool_t *pool);
+svn_fs_fs__min_unpacked_rev(svn_revnum_t *min_unpacked,
+ svn_fs_t *fs,
+ apr_pool_t *pool);
-/* Attempt to fetch the text representation of node-revision NODEREV as
- seen in filesystem FS and pass it along with the BATON to the PROCESSOR.
- Set *SUCCESS only of the data could be provided and the processing
- had been called.
- Use POOL for all allocations.
- */
+/* Return SVN_ERR_FS_NO_SUCH_REVISION if the given revision REV is newer
+ than the current youngest revision in FS or is simply not a valid
+ revision number, else return success. */
svn_error_t *
-svn_fs_fs__try_process_file_contents(svn_boolean_t *success,
- svn_fs_t *fs,
- node_revision_t *noderev,
- svn_fs_process_contents_func_t processor,
- void* baton,
- apr_pool_t *pool);
-
-/* Set *STREAM_P to a delta stream turning the contents of the file SOURCE into
- the contents of the file TARGET, allocated in POOL.
- If SOURCE is null, the empty string will be used. */
-svn_error_t *svn_fs_fs__get_file_delta_stream(svn_txdelta_stream_t **stream_p,
- svn_fs_t *fs,
- node_revision_t *source,
- node_revision_t *target,
- apr_pool_t *pool);
-
-/* Set *PROPLIST to be an apr_hash_t containing the property list of
- node-revision NODEREV as seen in filesystem FS. Use POOL for
- temporary allocations. */
-svn_error_t *svn_fs_fs__get_proplist(apr_hash_t **proplist,
- svn_fs_t *fs,
- node_revision_t *noderev,
- apr_pool_t *pool);
-
-/* Set *PROPLIST to be an apr_hash_t containing the property list of
- revision REV as seen in filesystem FS. Use POOL for temporary
- allocations. */
-svn_error_t *svn_fs_fs__revision_proplist(apr_hash_t **proplist,
- svn_fs_t *fs,
- svn_revnum_t rev,
- apr_pool_t *pool);
+svn_fs_fs__ensure_revision_exists(svn_revnum_t rev,
+ svn_fs_t *fs,
+ apr_pool_t *pool);
/* Set *LENGTH to the be fulltext length of the node revision
specified by NODEREV. Use POOL for temporary allocations. */
@@ -206,6 +86,26 @@ svn_error_t *svn_fs_fs__file_length(svn_filesize_t *length,
svn_boolean_t svn_fs_fs__noderev_same_rep_key(representation_t *a,
representation_t *b);
+/* Set *EQUAL to TRUE if the text representations in A and B within FS
+ have equal contents, else set it to FALSE.
+ Use SCRATCH_POOL for temporary allocations. */
+svn_error_t *
+svn_fs_fs__file_text_rep_equal(svn_boolean_t *equal,
+ svn_fs_t *fs,
+ node_revision_t *a,
+ node_revision_t *b,
+ apr_pool_t *scratch_pool);
+
+/* Set *EQUAL to TRUE if the property representations in A and B within FS
+ have equal contents, else set it to FALSE.
+ Use SCRATCH_POOL for temporary allocations. */
+svn_error_t *
+svn_fs_fs__prop_rep_equal(svn_boolean_t *equal,
+ svn_fs_t *fs,
+ node_revision_t *a,
+ node_revision_t *b,
+ apr_pool_t *scratch_pool);
+
/* Return a copy of the representation REP allocated from POOL. */
representation_t *svn_fs_fs__rep_copy(representation_t *rep,
@@ -220,152 +120,27 @@ svn_error_t *svn_fs_fs__file_checksum(svn_checksum_t **checksum,
svn_checksum_kind_t kind,
apr_pool_t *pool);
-/* Find the paths which were changed in revision REV of filesystem FS
- and store them in *CHANGED_PATHS_P. Cached copyfrom information
- will be stored in *COPYFROM_CACHE. Get any temporary allocations
- from POOL. */
-svn_error_t *svn_fs_fs__paths_changed(apr_hash_t **changed_paths_p,
- svn_fs_t *fs,
- svn_revnum_t rev,
- apr_hash_t *copyfrom_cache,
- apr_pool_t *pool);
-
-/* Create a new transaction in filesystem FS, based on revision REV,
- and store it in *TXN_P. Allocate all necessary variables from
- POOL. */
-svn_error_t *svn_fs_fs__create_txn(svn_fs_txn_t **txn_p,
- svn_fs_t *fs,
- svn_revnum_t rev,
- apr_pool_t *pool);
-
-/* Set the transaction property NAME to the value VALUE in transaction
- TXN. Perform temporary allocations from POOL. */
-svn_error_t *svn_fs_fs__change_txn_prop(svn_fs_txn_t *txn,
- const char *name,
- const svn_string_t *value,
- apr_pool_t *pool);
-
-/* Change transaction properties in transaction TXN based on PROPS.
- Perform temporary allocations from POOL. */
-svn_error_t *svn_fs_fs__change_txn_props(svn_fs_txn_t *txn,
- const apr_array_header_t *props,
- apr_pool_t *pool);
-
/* Return whether or not the given FS supports mergeinfo metadata. */
svn_boolean_t svn_fs_fs__fs_supports_mergeinfo(svn_fs_t *fs);
-/* Store a transaction record in *TXN_P for the transaction identified
- by TXN_ID in filesystem FS. Allocate everything from POOL. */
-svn_error_t *svn_fs_fs__get_txn(transaction_t **txn_p,
- svn_fs_t *fs,
- const char *txn_id,
- apr_pool_t *pool);
-
-/* Abort the existing transaction TXN, performing any temporary
- allocations in POOL. */
-svn_error_t *svn_fs_fs__abort_txn(svn_fs_txn_t *txn, apr_pool_t *pool);
-
-/* Create an entirely new mutable node in the filesystem FS, whose
- node-revision is NODEREV. Set *ID_P to the new node revision's ID.
- Use POOL for any temporary allocation. COPY_ID is the copy_id to
- use in the node revision ID. TXN_ID is the Subversion transaction
- under which this occurs. */
-svn_error_t *svn_fs_fs__create_node(const svn_fs_id_t **id_p,
- svn_fs_t *fs,
- node_revision_t *noderev,
- const char *copy_id,
- const char *txn_id,
- apr_pool_t *pool);
-
-/* Remove all references to the transaction TXN_ID from filesystem FS.
- Temporary allocations are from POOL. */
-svn_error_t *svn_fs_fs__purge_txn(svn_fs_t *fs,
- const char *txn_id,
- apr_pool_t *pool);
-
-/* Add or set in filesystem FS, transaction TXN_ID, in directory
- PARENT_NODEREV a directory entry for NAME pointing to ID of type
- KIND. Allocations are done in POOL. */
-svn_error_t *svn_fs_fs__set_entry(svn_fs_t *fs,
- const char *txn_id,
- node_revision_t *parent_noderev,
- const char *name,
- const svn_fs_id_t *id,
- svn_node_kind_t kind,
- apr_pool_t *pool);
-
-/* Add a change to the changes record for filesystem FS in transaction
- TXN_ID. Mark path PATH, having node-id ID, as changed according to
- the type in CHANGE_KIND. If the text representation was changed
- set TEXT_MOD to TRUE, and likewise for PROP_MOD. If this change
- was the result of a copy, set COPYFROM_REV and COPYFROM_PATH to the
- revision and path of the copy source, otherwise they should be set
- to SVN_INVALID_REVNUM and NULL. Perform any temporary allocations
- from POOL. */
-svn_error_t *svn_fs_fs__add_change(svn_fs_t *fs,
- const char *txn_id,
- const char *path,
- const svn_fs_id_t *id,
- svn_fs_path_change_kind_t change_kind,
- svn_boolean_t text_mod,
- svn_boolean_t prop_mod,
- svn_node_kind_t node_kind,
- svn_revnum_t copyfrom_rev,
- const char *copyfrom_path,
- apr_pool_t *pool);
-
-/* Return a writable stream in *STREAM that allows storing the text
- representation of node-revision NODEREV in filesystem FS.
- Allocations are from POOL. */
-svn_error_t *svn_fs_fs__set_contents(svn_stream_t **stream,
- svn_fs_t *fs,
- node_revision_t *noderev,
- apr_pool_t *pool);
-
-/* Create a node revision in FS which is an immediate successor of
- OLD_ID, whose contents are NEW_NR. Set *NEW_ID_P to the new node
- revision's ID. Use POOL for any temporary allocation.
-
- COPY_ID, if non-NULL, is a key into the `copies' table, and
- indicates that this new node is being created as the result of a
- copy operation, and specifically which operation that was. If
- COPY_ID is NULL, then re-use the copy ID from the predecessor node.
-
- TXN_ID is the Subversion transaction under which this occurs.
-
- After this call, the deltification code assumes that the new node's
- contents will change frequently, and will avoid representing other
- nodes as deltas against this node's contents. */
-svn_error_t *svn_fs_fs__create_successor(const svn_fs_id_t **new_id_p,
- svn_fs_t *fs,
- const svn_fs_id_t *old_idp,
- node_revision_t *new_noderev,
- const char *copy_id,
- const char *txn_id,
- apr_pool_t *pool);
-
-/* Write a new property list PROPLIST for node-revision NODEREV in
- filesystem FS. Perform any temporary allocations in POOL. */
-svn_error_t *svn_fs_fs__set_proplist(svn_fs_t *fs,
- node_revision_t *noderev,
- apr_hash_t *proplist,
- apr_pool_t *pool);
-
-/* Commit the transaction TXN in filesystem FS and return its new
- revision number in *REV. If the transaction is out of date, return
- the error SVN_ERR_FS_TXN_OUT_OF_DATE. Use POOL for temporary
- allocations. */
-svn_error_t *svn_fs_fs__commit(svn_revnum_t *new_rev_p,
- svn_fs_t *fs,
- svn_fs_txn_t *txn,
- apr_pool_t *pool);
-
-/* Return the next available copy_id in *COPY_ID for the transaction
- TXN_ID in filesystem FS. Allocate space in POOL. */
-svn_error_t *svn_fs_fs__reserve_copy_id(const char **copy_id,
- svn_fs_t *fs,
- const char *txn_id,
- apr_pool_t *pool);
+/* Under the repository db PATH, create a FSFS repository with FORMAT,
+ * the given SHARD_SIZE. If USE_LOG_ADDRESSING is non-zero, repository
+ * will use logical addressing. If not supported by the respective format,
+ * the latter two parameters will be ignored. FS will be updated.
+ *
+ * The only file not being written is the 'format' file. This allows
+ * callers such as hotcopy to modify the contents before turning the
+ * tree into an accessible repository.
+ *
+ * Use POOL for temporary allocations.
+ */
+svn_error_t *
+svn_fs_fs__create_file_tree(svn_fs_t *fs,
+ const char *path,
+ int format,
+ int shard_size,
+ svn_boolean_t use_log_addressing,
+ apr_pool_t *pool);
/* Create a fs_fs fileysystem referenced by FS at path PATH. Get any
temporary allocations from POOL.
@@ -376,70 +151,29 @@ svn_error_t *svn_fs_fs__create(svn_fs_t *fs,
const char *path,
apr_pool_t *pool);
-/* Set the uuid of repository FS to UUID, if UUID is not NULL;
- otherwise, set the uuid of FS to a newly generated UUID. Perform
- temporary allocations in POOL. */
+/* Set the uuid of repository FS to UUID and the instance ID to INSTANCE_ID.
+ If any of them is NULL, use a newly generated UUID / ID instead. Ignore
+ INSTANCE_ID whenever instance IDs are not supported by the FS format.
+ Perform temporary allocations in POOL. */
svn_error_t *svn_fs_fs__set_uuid(svn_fs_t *fs,
const char *uuid,
+ const char *instance_id,
apr_pool_t *pool);
-/* Set *NAMES_P to an array of names which are all the active
- transactions in filesystem FS. Allocate the array from POOL. */
-svn_error_t *svn_fs_fs__list_transactions(apr_array_header_t **names_p,
- svn_fs_t *fs,
- apr_pool_t *pool);
-
-/* Open the transaction named NAME in filesystem FS. Set *TXN_P to
- * the transaction. If there is no such transaction, return
-` * SVN_ERR_FS_NO_SUCH_TRANSACTION. Allocate the new transaction in
- * POOL. */
-svn_error_t *svn_fs_fs__open_txn(svn_fs_txn_t **txn_p,
- svn_fs_t *fs,
- const char *name,
- apr_pool_t *pool);
-
-/* Return the property list from transaction TXN and store it in
- *PROPLIST. Allocate the property list from POOL. */
-svn_error_t *svn_fs_fs__txn_proplist(apr_hash_t **proplist,
- svn_fs_txn_t *txn,
- apr_pool_t *pool);
-
-/* Delete the mutable node-revision referenced by ID, along with any
- mutable props or directory contents associated with it. Perform
- temporary allocations in POOL. */
-svn_error_t *svn_fs_fs__delete_node_revision(svn_fs_t *fs,
- const svn_fs_id_t *id,
- apr_pool_t *pool);
-
-
-/* Find the paths which were changed in transaction TXN_ID of
- filesystem FS and store them in *CHANGED_PATHS_P.
- Get any temporary allocations from POOL. */
-svn_error_t *svn_fs_fs__txn_changes_fetch(apr_hash_t **changes,
- svn_fs_t *fs,
- const char *txn_id,
- apr_pool_t *pool);
-
-
-/* Set *PATH to the path of REV in FS, whether in a pack file or not.
- Allocate *PATH in POOL.
-
- Note: If the caller does not have the write lock on FS, then the path is
- not guaranteed to be correct or to remain correct after the function
- returns, because the revision might become packed before or after this
- call. If a file exists at that path, then it is correct; if not, then
- the caller should call update_min_unpacked_rev() and re-try once. */
-svn_error_t *
-svn_fs_fs__path_rev_absolute(const char **path,
- svn_fs_t *fs,
- svn_revnum_t rev,
- apr_pool_t *pool);
-
/* Return the path to the 'current' file in FS.
Perform allocation in POOL. */
const char *
svn_fs_fs__path_current(svn_fs_t *fs, apr_pool_t *pool);
+/* Write the format number and maximum number of files per directory
+ for FS, possibly expecting to overwrite a previously existing file.
+
+ Use POOL for temporary allocation. */
+svn_error_t *
+svn_fs_fs__write_format(svn_fs_t *fs,
+ svn_boolean_t overwrite,
+ apr_pool_t *pool);
+
/* Obtain a write lock on the filesystem FS in a subpool of POOL, call
BODY with BATON and that subpool, destroy the subpool (releasing the write
lock) and return what BODY returned. */
@@ -450,6 +184,38 @@ svn_fs_fs__with_write_lock(svn_fs_t *fs,
void *baton,
apr_pool_t *pool);
+/* Obtain a pack operation lock on the filesystem FS in a subpool of POOL,
+ call BODY with BATON and that subpool, destroy the subpool (releasing the
+ write lock) and return what BODY returned. */
+svn_error_t *
+svn_fs_fs__with_pack_lock(svn_fs_t *fs,
+ svn_error_t *(*body)(void *baton,
+ apr_pool_t *pool),
+ void *baton,
+ apr_pool_t *pool);
+
+/* Run BODY (with BATON and POOL) while the txn-current file
+ of FS is locked. */
+svn_error_t *
+svn_fs_fs__with_txn_current_lock(svn_fs_t *fs,
+ svn_error_t *(*body)(void *baton,
+ apr_pool_t *pool),
+ void *baton,
+ apr_pool_t *pool);
+
+/* Obtain all locks on the filesystem FS in a subpool of POOL, call BODY
+ with BATON and that subpool, destroy the subpool (releasing the locks)
+ and return what BODY returned.
+
+ This combines svn_fs_fs__with_write_lock, svn_fs_fs__with_pack_lock,
+ and svn_fs_fs__with_txn_current_lock, ensuring correct lock ordering. */
+svn_error_t *
+svn_fs_fs__with_all_locks(svn_fs_t *fs,
+ svn_error_t *(*body)(void *baton,
+ apr_pool_t *pool),
+ void *baton,
+ apr_pool_t *pool);
+
/* Find the value of the property named PROPNAME in transaction TXN.
Return the contents in *VALUE_P. The contents will be allocated
from POOL. */
@@ -469,38 +235,6 @@ svn_error_t *svn_fs_fs__change_rev_prop(svn_fs_t *fs, svn_revnum_t rev,
const svn_string_t *value,
apr_pool_t *pool);
-/* Retrieve information about the Subversion transaction SVN_TXN from
- the `transactions' table of FS, allocating from POOL. Set
- *ROOT_ID_P to the ID of the transaction's root directory. Set
- *BASE_ROOT_ID_P to the ID of the root directory of the
- transaction's base revision.
-
- If there is no such transaction, SVN_ERR_FS_NO_SUCH_TRANSACTION is
- the error returned.
-
- Returns SVN_ERR_FS_TRANSACTION_NOT_MUTABLE if TXN_NAME refers to a
- transaction that has already been committed.
-
- Allocate *ROOT_ID_P and *BASE_ROOT_ID_P in POOL. */
-svn_error_t *svn_fs_fs__get_txn_ids(const svn_fs_id_t **root_id_p,
- const svn_fs_id_t **base_root_id_p,
- svn_fs_t *fs,
- const char *txn_name,
- apr_pool_t *pool);
-
-/* Begin a new transaction in filesystem FS, based on existing
- revision REV. The new transaction is returned in *TXN_P. Allocate
- the new transaction structure from POOL. */
-svn_error_t *svn_fs_fs__begin_txn(svn_fs_txn_t **txn_p, svn_fs_t *fs,
- svn_revnum_t rev, apr_uint32_t flags,
- apr_pool_t *pool);
-
-/* Find the value of the property named PROPNAME in transaction TXN.
- Return the contents in *VALUE_P. The contents will be allocated
- from POOL. */
-svn_error_t *svn_fs_fs__txn_prop(svn_string_t **value_p, svn_fs_txn_t *txn,
- const char *propname, apr_pool_t *pool);
-
/* If directory PATH does not exist, create it and give it the same
permissions as FS_PATH.*/
svn_error_t *svn_fs_fs__ensure_dir_exists(const char *path,
@@ -516,7 +250,7 @@ svn_error_t *svn_fs_fs__ensure_dir_exists(const char *path,
*/
svn_error_t *
svn_fs_fs__set_node_origin(svn_fs_t *fs,
- const char *node_id,
+ const svn_fs_fs__id_part_t *node_id,
const svn_fs_id_t *node_rev_id,
apr_pool_t *pool);
@@ -530,12 +264,12 @@ svn_fs_fs__set_node_origin(svn_fs_t *fs,
svn_error_t *
svn_fs_fs__get_node_origin(const svn_fs_id_t **origin_id,
svn_fs_t *fs,
- const char *node_id,
+ const svn_fs_fs__id_part_t *node_id,
apr_pool_t *pool);
/* Initialize all session-local caches in FS according to the global
- cache settings. Use POOL for allocations.
+ cache settings. Use POOL for temporary allocations.
Please note that it is permissible for this function to set some
or all of these caches to NULL, regardless of any setting. */
@@ -558,18 +292,4 @@ svn_fs_fs__initialize_txn_caches(svn_fs_t *fs,
void
svn_fs_fs__reset_txn_caches(svn_fs_t *fs);
-/* Possibly pack the repository at PATH. This just take full shards, and
- combines all the revision files into a single one, with a manifest header.
- Use optional CANCEL_FUNC/CANCEL_BATON for cancellation support.
-
- Existing filesystem references need not change. */
-svn_error_t *
-svn_fs_fs__pack(svn_fs_t *fs,
- svn_fs_pack_notify_t notify_func,
- void *notify_baton,
- svn_cancel_func_t cancel_func,
- void *cancel_baton,
- apr_pool_t *pool);
-
-
#endif