📄 fs_fs.h
字号:
/* fs_fs.h : interface to the native filesystem layer
*
* ====================================================================
* Copyright (c) 2000-2004 CollabNet. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://subversion.tigris.org/license-1.html.
* If newer versions of this license are posted there, you may use a
* newer version instead, at your option.
*
* This software consists of voluntary contributions made by many
* individuals. For exact contribution history, see the revision
* history and logs, available at http://subversion.tigris.org/.
* ====================================================================
*/
#ifndef SVN_LIBSVN_FS__FS_FS_H
#define SVN_LIBSVN_FS__FS_FS_H
/* Open the fsfs filesystem pointed to by PATH and associate it with
filesystem object FS. Use POOL for temporary allocations. */
svn_error_t *svn_fs_fs__open (svn_fs_t *fs,
const char *path,
apr_pool_t *pool);
/* Copy the fsfs filesystem at SRC_PATH into a new copy at DST_PATH.
Use POOL for temporary allocations. */
svn_error_t *svn_fs_fs__hotcopy (const char *src_path,
const char *dst_path,
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. 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,
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);
/* 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);
/* Set *ENTRIES to an apr_hash_t of dirent structs that contain the
directory entries of node-revision NODEREV in filesystem FS. Use
POOL for temporary allocations. The returned hash does *not* live
in POOL, and becomes invalid on the next call to this function. If
you need it to live longer, copy it with
svn_fs_fs__copy_dir_entries. */
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);
/* Return a copy of the directory hash ENTRIES in POOL. Use this to
copy the result of svn_fs_fs__rep_contents_dir into a predictable
place so that doesn't become invalid before it's no longer
needed. */
apr_hash_t *svn_fs_fs__copy_dir_entries (apr_hash_t *entries,
apr_pool_t *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);
/* 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 the revision property list of revision REV in filesystem FS to
PROPLIST. Use POOL for temporary allocations. */
svn_error_t *svn_fs_fs__set_revision_proplist (svn_fs_t *fs,
svn_revnum_t rev,
apr_hash_t *proplist,
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);
/* Set *LENGTH to the be fulltext length of the node revision
specified by NODEREV. Use POOL for temporary allocations. */
svn_error_t *svn_fs_fs__file_length (svn_filesize_t *length,
node_revision_t *noderev,
apr_pool_t *pool);
/* Return TRUE if the representation keys in A and B both point to the
same representation, else return FALSE. */
svn_boolean_t svn_fs_fs__noderev_same_rep_key (representation_t *a,
representation_t *b);
/* Return a copy of the representation REP allocated from POOL. */
representation_t *svn_fs_fs__rep_copy (representation_t *rep,
apr_pool_t *pool);
/* Return the record MD5 checksum of the text representation of NODREV
into DIGEST, allocating from POOL. If no stored checksum is
available, put all 0's into DIGEST. */
svn_error_t *svn_fs_fs__file_checksum (unsigned char digest[],
node_revision_t *noderev,
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);
/* 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);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -