Subversion
|
Accessing SVN configuration files. More...
Go to the source code of this file.
Defines | |
#define | SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_1 "*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo" |
#define | SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_2 "*.rej *~ #*# .#* .*.swp .DS_Store" |
#define | SVN_CONFIG_DEFAULT_GLOBAL_IGNORES |
#define | SVN_CONFIG_TRUE "TRUE" |
#define | SVN_CONFIG_FALSE "FALSE" |
#define | SVN_CONFIG_ASK "ASK" |
#define | SVN_CONFIG_DEFAULT_OPTION_STORE_PASSWORDS TRUE |
#define | SVN_CONFIG_DEFAULT_OPTION_STORE_PLAINTEXT_PASSWORDS SVN_CONFIG_ASK |
#define | SVN_CONFIG_DEFAULT_OPTION_STORE_AUTH_CREDS TRUE |
#define | SVN_CONFIG_DEFAULT_OPTION_STORE_SSL_CLIENT_CERT_PP TRUE |
#define | SVN_CONFIG_DEFAULT_OPTION_STORE_SSL_CLIENT_CERT_PP_PLAINTEXT SVN_CONFIG_ASK |
#define | SVN_CONFIG_REALMSTRING_KEY "svn:realmstring" |
A hash-key pointing to a realmstring. | |
Client configuration files strings | |
Strings for the names of files, sections, and options in the client configuration files. | |
#define | SVN_CONFIG_CATEGORY_SERVERS "servers" |
#define | SVN_CONFIG_SECTION_GROUPS "groups" |
#define | SVN_CONFIG_SECTION_GLOBAL "global" |
#define | SVN_CONFIG_OPTION_HTTP_PROXY_HOST "http-proxy-host" |
#define | SVN_CONFIG_OPTION_HTTP_PROXY_PORT "http-proxy-port" |
#define | SVN_CONFIG_OPTION_HTTP_PROXY_USERNAME "http-proxy-username" |
#define | SVN_CONFIG_OPTION_HTTP_PROXY_PASSWORD "http-proxy-password" |
#define | SVN_CONFIG_OPTION_HTTP_PROXY_EXCEPTIONS "http-proxy-exceptions" |
#define | SVN_CONFIG_OPTION_HTTP_TIMEOUT "http-timeout" |
#define | SVN_CONFIG_OPTION_HTTP_COMPRESSION "http-compression" |
#define | SVN_CONFIG_OPTION_NEON_DEBUG_MASK "neon-debug-mask" |
#define | SVN_CONFIG_OPTION_HTTP_AUTH_TYPES "http-auth-types" |
#define | SVN_CONFIG_OPTION_SSL_AUTHORITY_FILES "ssl-authority-files" |
#define | SVN_CONFIG_OPTION_SSL_TRUST_DEFAULT_CA "ssl-trust-default-ca" |
#define | SVN_CONFIG_OPTION_SSL_CLIENT_CERT_FILE "ssl-client-cert-file" |
#define | SVN_CONFIG_OPTION_SSL_CLIENT_CERT_PASSWORD "ssl-client-cert-password" |
#define | SVN_CONFIG_OPTION_SSL_PKCS11_PROVIDER "ssl-pkcs11-provider" |
#define | SVN_CONFIG_OPTION_HTTP_LIBRARY "http-library" |
#define | SVN_CONFIG_OPTION_STORE_PASSWORDS "store-passwords" |
#define | SVN_CONFIG_OPTION_STORE_PLAINTEXT_PASSWORDS "store-plaintext-passwords" |
#define | SVN_CONFIG_OPTION_STORE_AUTH_CREDS "store-auth-creds" |
#define | SVN_CONFIG_OPTION_STORE_SSL_CLIENT_CERT_PP "store-ssl-client-cert-pp" |
#define | SVN_CONFIG_OPTION_STORE_SSL_CLIENT_CERT_PP_PLAINTEXT "store-ssl-client-cert-pp-plaintext" |
#define | SVN_CONFIG_OPTION_USERNAME "username" |
#define | SVN_CONFIG_CATEGORY_CONFIG "config" |
#define | SVN_CONFIG_SECTION_AUTH "auth" |
#define | SVN_CONFIG_OPTION_PASSWORD_STORES "password-stores" |
#define | SVN_CONFIG_OPTION_KWALLET_WALLET "kwallet-wallet" |
#define | SVN_CONFIG_OPTION_KWALLET_SVN_APPLICATION_NAME_WITH_PID "kwallet-svn-application-name-with-pid" |
#define | SVN_CONFIG_SECTION_HELPERS "helpers" |
#define | SVN_CONFIG_OPTION_EDITOR_CMD "editor-cmd" |
#define | SVN_CONFIG_OPTION_DIFF_CMD "diff-cmd" |
#define | SVN_CONFIG_OPTION_DIFF_EXTENSIONS "diff-extensions" |
#define | SVN_CONFIG_OPTION_DIFF3_CMD "diff3-cmd" |
#define | SVN_CONFIG_OPTION_DIFF3_HAS_PROGRAM_ARG "diff3-has-program-arg" |
#define | SVN_CONFIG_OPTION_MERGE_TOOL_CMD "merge-tool-cmd" |
#define | SVN_CONFIG_SECTION_MISCELLANY "miscellany" |
#define | SVN_CONFIG_OPTION_GLOBAL_IGNORES "global-ignores" |
#define | SVN_CONFIG_OPTION_LOG_ENCODING "log-encoding" |
#define | SVN_CONFIG_OPTION_USE_COMMIT_TIMES "use-commit-times" |
#define | SVN_CONFIG_OPTION_TEMPLATE_ROOT "template-root" |
#define | SVN_CONFIG_OPTION_ENABLE_AUTO_PROPS "enable-auto-props" |
#define | SVN_CONFIG_OPTION_NO_UNLOCK "no-unlock" |
#define | SVN_CONFIG_OPTION_MIMETYPES_FILE "mime-types-file" |
#define | SVN_CONFIG_OPTION_PRESERVED_CF_EXTS "preserved-conflict-file-exts" |
#define | SVN_CONFIG_OPTION_INTERACTIVE_CONFLICTS "interactive-conflicts" |
#define | SVN_CONFIG_OPTION_MEMORY_CACHE_SIZE "memory-cache-size" |
#define | SVN_CONFIG_SECTION_TUNNELS "tunnels" |
#define | SVN_CONFIG_SECTION_AUTO_PROPS "auto-props" |
Repository conf directory configuration files strings | |
Strings for the names of sections and options in the repository conf directory configuration files. | |
#define | SVN_CONFIG_SECTION_GENERAL "general" |
#define | SVN_CONFIG_OPTION_ANON_ACCESS "anon-access" |
#define | SVN_CONFIG_OPTION_AUTH_ACCESS "auth-access" |
#define | SVN_CONFIG_OPTION_PASSWORD_DB "password-db" |
#define | SVN_CONFIG_OPTION_REALM "realm" |
#define | SVN_CONFIG_OPTION_AUTHZ_DB "authz-db" |
#define | SVN_CONFIG_OPTION_FORCE_USERNAME_CASE "force-username-case" |
#define | SVN_CONFIG_SECTION_SASL "sasl" |
#define | SVN_CONFIG_OPTION_USE_SASL "use-sasl" |
#define | SVN_CONFIG_OPTION_MIN_SSF "min-encryption" |
#define | SVN_CONFIG_OPTION_MAX_SSF "max-encryption" |
#define | SVN_CONFIG_SECTION_USERS "users" |
Typedefs | |
typedef struct svn_config_t | svn_config_t |
Opaque structure describing a set of configuration options. | |
typedef svn_boolean_t(* | svn_config_section_enumerator_t )(const char *name, void *baton) |
Similar to svn_config_section_enumerator2_t , but is not provided with a memory pool argument. | |
typedef svn_boolean_t(* | svn_config_section_enumerator2_t )(const char *name, void *baton, apr_pool_t *pool) |
A callback function used in enumerating config sections. | |
typedef svn_boolean_t(* | svn_config_enumerator_t )(const char *name, const char *value, void *baton) |
Similar to svn_config_enumerator2_t , but is not provided with a memory pool argument. | |
typedef svn_boolean_t(* | svn_config_enumerator2_t )(const char *name, const char *value, void *baton, apr_pool_t *pool) |
A callback function used in enumerating config options. | |
Functions | |
svn_error_t * | svn_config_get_config (apr_hash_t **cfg_hash, const char *config_dir, apr_pool_t *pool) |
Read configuration information from the standard sources and merge it into the hash *cfg_hash. | |
svn_error_t * | svn_config_create (svn_config_t **cfgp, svn_boolean_t section_names_case_sensitive, apr_pool_t *result_pool) |
Set *cfgp to an empty svn_config_t structure, allocated in result_pool. | |
svn_error_t * | svn_config_read2 (svn_config_t **cfgp, const char *file, svn_boolean_t must_exist, svn_boolean_t section_names_case_sensitive, apr_pool_t *pool) |
Read configuration data from file (a file or registry path) into *cfgp, allocated in pool. | |
svn_error_t * | svn_config_read (svn_config_t **cfgp, const char *file, svn_boolean_t must_exist, apr_pool_t *pool) |
Similar to svn_config_read2, but always passes FALSE to section_names_case_sensitive. | |
svn_error_t * | svn_config_merge (svn_config_t *cfg, const char *file, svn_boolean_t must_exist) |
Like svn_config_read(), but merges the configuration data from file (a file or registry path) into *cfg, which was previously returned from svn_config_read(). | |
void | svn_config_get (svn_config_t *cfg, const char **valuep, const char *section, const char *option, const char *default_value) |
Find the value of a (section, option) pair in cfg, set *valuep to the value. | |
void | svn_config_set (svn_config_t *cfg, const char *section, const char *option, const char *value) |
Add or replace the value of a (section, option) pair in cfg with value. | |
svn_error_t * | svn_config_get_bool (svn_config_t *cfg, svn_boolean_t *valuep, const char *section, const char *option, svn_boolean_t default_value) |
Like svn_config_get(), but for boolean values. | |
void | svn_config_set_bool (svn_config_t *cfg, const char *section, const char *option, svn_boolean_t value) |
Like svn_config_set(), but for boolean values. | |
svn_error_t * | svn_config_get_yes_no_ask (svn_config_t *cfg, const char **valuep, const char *section, const char *option, const char *default_value) |
Like svn_config_get(), but only for yes/no/ask values. | |
int | svn_config_enumerate_sections (svn_config_t *cfg, svn_config_section_enumerator_t callback, void *baton) |
Similar to svn_config_enumerate_sections2(), but uses a memory pool of cfg instead of one that is explicitly provided. | |
int | svn_config_enumerate_sections2 (svn_config_t *cfg, svn_config_section_enumerator2_t callback, void *baton, apr_pool_t *pool) |
Enumerate the sections, passing baton and the current section's name to callback. | |
int | svn_config_enumerate (svn_config_t *cfg, const char *section, svn_config_enumerator_t callback, void *baton) |
Similar to svn_config_enumerate2(), but uses a memory pool of cfg instead of one that is explicitly provided. | |
int | svn_config_enumerate2 (svn_config_t *cfg, const char *section, svn_config_enumerator2_t callback, void *baton, apr_pool_t *pool) |
Enumerate the options in section, passing baton and the current option's name and value to callback. | |
svn_boolean_t | svn_config_has_section (svn_config_t *cfg, const char *section) |
Return TRUE if section exists in cfg, FALSE otherwise. | |
const char * | svn_config_find_group (svn_config_t *cfg, const char *key, const char *master_section, apr_pool_t *pool) |
Enumerate the group master_section in cfg. | |
const char * | svn_config_get_server_setting (svn_config_t *cfg, const char *server_group, const char *option_name, const char *default_value) |
Retrieve value corresponding to option_name in cfg, or return default_value if none is found. | |
svn_error_t * | svn_config_get_server_setting_int (svn_config_t *cfg, const char *server_group, const char *option_name, apr_int64_t default_value, apr_int64_t *result_value, apr_pool_t *pool) |
Retrieve value into result_value corresponding to option_name for a given server_group in cfg, or return default_value if none is found. | |
svn_error_t * | svn_config_get_server_setting_bool (svn_config_t *cfg, svn_boolean_t *valuep, const char *server_group, const char *option_name, svn_boolean_t default_value) |
Set *valuep according to option_name for a given server_group in cfg, or set to default_value if no value is specified. | |
svn_error_t * | svn_config_ensure (const char *config_dir, apr_pool_t *pool) |
Try to ensure that the user's ~/.subversion/ area exists, and create no-op template files for any absent config files. | |
svn_error_t * | svn_config_read_auth_data (apr_hash_t **hash, const char *cred_kind, const char *realmstring, const char *config_dir, apr_pool_t *pool) |
Use cred_kind and realmstring to locate a file within the ~/.subversion/auth/ area. | |
svn_error_t * | svn_config_write_auth_data (apr_hash_t *hash, const char *cred_kind, const char *realmstring, const char *config_dir, apr_pool_t *pool) |
Use cred_kind and realmstring to create or overwrite a file within the ~/.subversion/auth/ area. | |
svn_error_t * | svn_config_get_user_config_path (const char **path, const char *config_dir, const char *fname, apr_pool_t *pool) |
Put the absolute path to the user's configuration directory, or to a file within that directory, into *path. |
Accessing SVN configuration files.
Definition in file svn_config.h.
#define SVN_CONFIG_DEFAULT_GLOBAL_IGNORES |
SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_1 " " \
SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_2
Definition at line 154 of file svn_config.h.
#define SVN_CONFIG_OPTION_DIFF_EXTENSIONS "diff-extensions" |
Definition at line 101 of file svn_config.h.
#define SVN_CONFIG_OPTION_FORCE_USERNAME_CASE "force-username-case" |
Definition at line 133 of file svn_config.h.
typedef svn_boolean_t(* svn_config_enumerator2_t)(const char *name, const char *value, void *baton, apr_pool_t *pool) |
A callback function used in enumerating config options.
See svn_config_enumerate2() for the details of this type.
Definition at line 403 of file svn_config.h.
typedef svn_boolean_t(* svn_config_enumerator_t)(const char *name, const char *value, void *baton) |
Similar to svn_config_enumerator2_t
, but is not provided with a memory pool argument.
See svn_config_enumerate() for the details of this type.
Definition at line 380 of file svn_config.h.
typedef svn_boolean_t(* svn_config_section_enumerator2_t)(const char *name, void *baton, apr_pool_t *pool) |
A callback function used in enumerating config sections.
See svn_config_enumerate_sections2() for the details of this type.
Definition at line 354 of file svn_config.h.
typedef svn_boolean_t(* svn_config_section_enumerator_t)(const char *name, void *baton) |
Similar to svn_config_section_enumerator2_t
, but is not provided with a memory pool argument.
See svn_config_enumerate_sections() for the details of this type.
Definition at line 334 of file svn_config.h.
typedef struct svn_config_t svn_config_t |
Opaque structure describing a set of configuration options.
Definition at line 53 of file svn_config.h.
svn_error_t* svn_config_create | ( | svn_config_t ** | cfgp, |
svn_boolean_t | section_names_case_sensitive, | ||
apr_pool_t * | result_pool | ||
) |
Set *cfgp to an empty svn_config_t
structure, allocated in result_pool.
Pass TRUE to section_names_case_sensitive if section names are to be populated case sensitively.
svn_error_t* svn_config_ensure | ( | const char * | config_dir, |
apr_pool_t * | pool | ||
) |
Try to ensure that the user's ~/.subversion/ area exists, and create no-op template files for any absent config files.
Use pool for any temporary allocation. If config_dir is not NULL
it specifies a directory from which to read the config overriding all other sources.
Don't error if something exists but is the wrong kind (for example, ~/.subversion exists but is a file, or ~/.subversion/servers exists but is a directory).
Also don't error if trying to create something and failing -- it's okay for the config area or its contents not to be created. However, if creating a config template file succeeds, return an error if unable to initialize its contents.
int svn_config_enumerate | ( | svn_config_t * | cfg, |
const char * | section, | ||
svn_config_enumerator_t | callback, | ||
void * | baton | ||
) |
Similar to svn_config_enumerate2(), but uses a memory pool of cfg instead of one that is explicitly provided.
int svn_config_enumerate2 | ( | svn_config_t * | cfg, |
const char * | section, | ||
svn_config_enumerator2_t | callback, | ||
void * | baton, | ||
apr_pool_t * | pool | ||
) |
Enumerate the options in section, passing baton and the current option's name and value to callback.
Continue the enumeration if callback returns TRUE
. Return the number of times callback was called.
### kff asks: A more usual interface is to continue enumerating while callback does not return error, and if callback does return error, to return the same error (or a wrapping of it) from svn_config_enumerate(). What's the use case for svn_config_enumerate()? Is it more likely to need to break out of an enumeration early, with no error, than an invocation of callback is likely to need to return an error? ###
callback's name and value parameters are only valid for the duration of the call.
int svn_config_enumerate_sections | ( | svn_config_t * | cfg, |
svn_config_section_enumerator_t | callback, | ||
void * | baton | ||
) |
Similar to svn_config_enumerate_sections2(), but uses a memory pool of cfg instead of one that is explicitly provided.
int svn_config_enumerate_sections2 | ( | svn_config_t * | cfg, |
svn_config_section_enumerator2_t | callback, | ||
void * | baton, | ||
apr_pool_t * | pool | ||
) |
Enumerate the sections, passing baton and the current section's name to callback.
Continue the enumeration if callback returns TRUE
. Return the number of times callback was called.
### See kff's comment to svn_config_enumerate2(). It applies to this function, too. ###
callback's name parameter is only valid for the duration of the call.
const char* svn_config_find_group | ( | svn_config_t * | cfg, |
const char * | key, | ||
const char * | master_section, | ||
apr_pool_t * | pool | ||
) |
Enumerate the group master_section in cfg.
Each variable value is interpreted as a list of glob patterns (separated by comma and optional whitespace). Return the name of the first variable whose value matches key, or NULL
if no variable matches.
void svn_config_get | ( | svn_config_t * | cfg, |
const char ** | valuep, | ||
const char * | section, | ||
const char * | option, | ||
const char * | default_value | ||
) |
Find the value of a (section, option) pair in cfg, set *valuep to the value.
If cfg is NULL
, just sets *valuep to default_value. If the value does not exist, expand and return default_value. default_value can be NULL.
The returned value will be valid at least until the next call to svn_config_get(), or for the lifetime of default_value. It is safest to consume the returned value immediately.
This function may change cfg by expanding option values.
svn_error_t* svn_config_get_bool | ( | svn_config_t * | cfg, |
svn_boolean_t * | valuep, | ||
const char * | section, | ||
const char * | option, | ||
svn_boolean_t | default_value | ||
) |
Like svn_config_get(), but for boolean values.
Parses the option as a boolean value. The recognized representations are 'TRUE'/'FALSE', 'yes'/'no', 'on'/'off', '1'/'0'; case does not matter. Returns an error if the option doesn't contain a known string.
svn_error_t* svn_config_get_config | ( | apr_hash_t ** | cfg_hash, |
const char * | config_dir, | ||
apr_pool_t * | pool | ||
) |
Read configuration information from the standard sources and merge it into the hash *cfg_hash.
If config_dir is not NULL it specifies a directory from which to read the configuration files, overriding all other sources. Otherwise, first read any system-wide configurations (from a file or from the registry), then merge in personal configurations (again from file or registry). The hash and all its data are allocated in pool.
*cfg_hash is a hash whose keys are const
char * configuration categories (SVN_CONFIG_CATEGORY_SERVERS
, SVN_CONFIG_CATEGORY_CONFIG
, etc.) and whose values are the svn_config_t
* items representing the configuration values for that category.
const char* svn_config_get_server_setting | ( | svn_config_t * | cfg, |
const char * | server_group, | ||
const char * | option_name, | ||
const char * | default_value | ||
) |
Retrieve value corresponding to option_name in cfg, or return default_value if none is found.
The config will first be checked for a default. If server_group is not NULL
, the config will also be checked for an override in a server group,
svn_error_t* svn_config_get_server_setting_bool | ( | svn_config_t * | cfg, |
svn_boolean_t * | valuep, | ||
const char * | server_group, | ||
const char * | option_name, | ||
svn_boolean_t | default_value | ||
) |
Set *valuep according to option_name for a given server_group in cfg, or set to default_value if no value is specified.
Check first a default, then for an override in a server group. If a value is found but is not a valid boolean, return an SVN_ERR_BAD_CONFIG_VALUE error.
svn_error_t* svn_config_get_server_setting_int | ( | svn_config_t * | cfg, |
const char * | server_group, | ||
const char * | option_name, | ||
apr_int64_t | default_value, | ||
apr_int64_t * | result_value, | ||
apr_pool_t * | pool | ||
) |
Retrieve value into result_value corresponding to option_name for a given server_group in cfg, or return default_value if none is found.
The config will first be checked for a default, then will be checked for an override in a server group. If the value found is not a valid integer, a svn_error_t*
will be returned.
svn_error_t* svn_config_get_yes_no_ask | ( | svn_config_t * | cfg, |
const char ** | valuep, | ||
const char * | section, | ||
const char * | option, | ||
const char * | default_value | ||
) |
Like svn_config_get(), but only for yes/no/ask values.
Parse option in section and set *valuep to one of SVN_CONFIG_TRUE, SVN_CONFIG_FALSE, or SVN_CONFIG_ASK. If there is no setting for option, then parse default_value and set *valuep accordingly. If default_value is NULL, the result is undefined, and may be an error; we recommend that you pass one of SVN_CONFIG_TRUE, SVN_CONFIG_FALSE, or SVN_CONFIG_ASK for default value.
Valid representations are (at least) "true"/"false", "yes"/"no", "on"/"off", "1"/"0", and "ask"; they are case-insensitive. Return an SVN_ERR_BAD_CONFIG_VALUE error if either default_value or option's value is not a valid representation.
svn_boolean_t svn_config_has_section | ( | svn_config_t * | cfg, |
const char * | section | ||
) |
Return TRUE
if section exists in cfg, FALSE
otherwise.
svn_error_t* svn_config_merge | ( | svn_config_t * | cfg, |
const char * | file, | ||
svn_boolean_t | must_exist | ||
) |
Like svn_config_read(), but merges the configuration data from file (a file or registry path) into *cfg, which was previously returned from svn_config_read().
This function invalidates all value expansions in cfg, so that the next svn_config_get() takes the modifications into account.
svn_error_t* svn_config_read | ( | svn_config_t ** | cfgp, |
const char * | file, | ||
svn_boolean_t | must_exist, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_config_read2, but always passes FALSE to section_names_case_sensitive.
svn_error_t* svn_config_read2 | ( | svn_config_t ** | cfgp, |
const char * | file, | ||
svn_boolean_t | must_exist, | ||
svn_boolean_t | section_names_case_sensitive, | ||
apr_pool_t * | pool | ||
) |
Read configuration data from file (a file or registry path) into *cfgp, allocated in pool.
If file does not exist, then if must_exist, return an error, otherwise return an empty svn_config_t
.
If section_names_case_sensitive is TRUE, populate section name hashes case sensitively, except for the default SVN_CONFIG__DEFAULT_SECTION.
void svn_config_set | ( | svn_config_t * | cfg, |
const char * | section, | ||
const char * | option, | ||
const char * | value | ||
) |
Add or replace the value of a (section, option) pair in cfg with value.
This function invalidates all value expansions in cfg.
To remove an option, pass NULL for the value.
void svn_config_set_bool | ( | svn_config_t * | cfg, |
const char * | section, | ||
const char * | option, | ||
svn_boolean_t | value | ||
) |
Like svn_config_set(), but for boolean values.
Sets the option to 'TRUE'/'FALSE', depending on value.