blob: d3db2af57076799dfc5e58c5464d1b46bdb3eeb0 [file] [log] [blame]
/* repos.h : interface to Subversion repository, private to libsvn_repos
*
* ====================================================================
* Copyright (c) 2000-2002 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_REPOS_H
#define SVN_LIBSVN_REPOS_H
#include "apr_pools.h"
#include "apr_hash.h"
#include "svn_fs.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*** Repository layout. ***/
/* The top-level repository dir contains a README and various
subdirectories. */
#define SVN_REPOS__README "README" /* Explanation for trespassers. */
#define SVN_REPOS__DB_DIR "db" /* Where Berkeley lives. */
#define SVN_REPOS__DAV_DIR "dav" /* DAV sandbox. */
#define SVN_REPOS__LOCK_DIR "locks" /* Lock files live here. */
#define SVN_REPOS__HOOK_DIR "hooks" /* Hook programs. */
#define SVN_REPOS__CONF_DIR "conf" /* Configuration files. */
/* Things for which we keep lockfiles. */
#define SVN_REPOS__DB_LOCKFILE "db.lock" /* Our Berkeley lockfile. */
/* In the repository hooks directory, look for these files. */
#define SVN_REPOS__HOOK_START_COMMIT "start-commit"
#define SVN_REPOS__HOOK_PRE_COMMIT "pre-commit"
#define SVN_REPOS__HOOK_POST_COMMIT "post-commit"
#define SVN_REPOS__HOOK_READ_SENTINEL "read-sentinels"
#define SVN_REPOS__HOOK_WRITE_SENTINEL "write-sentinels"
/* The extension added to the names of example hook scripts. */
#define SVN_REPOS__HOOK_DESC_EXT ".tmpl"
/* The Repository object, created by svn_repos_open() and
svn_repos_create(), allocated in POOL. */
struct svn_repos_t
{
/* A Subversion filesystem object. */
svn_fs_t *fs;
/* The path to the repository's top-level directory. */
char *path;
/* The path to the repository's dav directory. */
char *dav_path;
/* The path to the repository's conf directory. */
char *conf_path;
/* The path to the repository's hooks directory. */
char *hook_path;
/* The path to the repository's locks directory. */
char *lock_path;
/* The path to the Berkeley DB filesystem environment. */
char *db_path;
/* A pool, filled with allocated memory, a diving board, and a tube
slide. */
apr_pool_t *pool;
};
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* SVN_LIBSVN_REPOS_H */
/*
* local variables:
* eval: (load-file "../../tools/dev/svn-dev.el")
* end:
*/