📄 svn_wc.h
字号:
const char *path, svn_revnum_t rev, void *diff_baton); /** The same as @c dir_deleted in @c svn_wc_diff_callbacks2_t. */ svn_error_t *(*dir_deleted)(svn_wc_adm_access_t *adm_access, svn_wc_notify_state_t *state, const char *path, void *diff_baton); /** Similar to @c dir_props_changed in @c svn_wc_diff_callbacks2_t, but this * function is called for files as well as directories. */ svn_error_t *(*props_changed)(svn_wc_adm_access_t *adm_access, svn_wc_notify_state_t *state, const char *path, const apr_array_header_t *propchanges, apr_hash_t *original_props, void *diff_baton);} svn_wc_diff_callbacks_t;/* Asking questions about a working copy. *//** Set @a *wc_format to @a path's working copy format version number if * @a path is a valid working copy directory, else set it to 0. * Return error @c APR_ENOENT if @a path does not exist at all. */svn_error_t *svn_wc_check_wc(const char *path, int *wc_format, apr_pool_t *pool);/** Set @a *has_binary_prop to @c TRUE iff @a path has been marked * with a property indicating that it is non-text (in other words, binary). * @a adm_access is an access baton set that contains @a path. */svn_error_t *svn_wc_has_binary_prop(svn_boolean_t *has_binary_prop, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool);/* Detecting modification. *//** Set @a *modified_p to non-zero if @a filename's text is modified * with regard to the base revision, else set @a *modified_p to zero. * @a filename is a path to the file, not just a basename. @a adm_access * must be an access baton for @a filename. * * If @a force_comparison is @c TRUE, this function will not allow * early return mechanisms that avoid actual content comparison. * Instead, if there is a text base, a full byte-by-byte comparison * will be done, and the entry checksum verified as well. (This means * that if the text base is much longer than the working file, every * byte of the text base will still be examined.) * * If @a filename does not exist, consider it unmodified. If it exists * but is not under revision control (not even scheduled for * addition), return the error @c SVN_ERR_ENTRY_NOT_FOUND. */svn_error_t *svn_wc_text_modified_p(svn_boolean_t *modified_p, const char *filename, svn_boolean_t force_comparison, svn_wc_adm_access_t *adm_access, apr_pool_t *pool);/** Set @a *modified_p to non-zero if @a path's properties are modified * with regard to the base revision, else set @a modified_p to zero. * @a adm_access must be an access baton for @a path. */svn_error_t *svn_wc_props_modified_p(svn_boolean_t *modified_p, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool);/** Administrative subdir. * * Ideally, this would be completely private to wc internals (in fact, * it used to be that adm_subdir() in adm_files.c was the only function * who knew the adm subdir's name). However, import wants to protect * against importing administrative subdirs, so now the name is a * matter of public record. * * @deprecated Provided for backward compatibility with the 1.2 API. */#define SVN_WC_ADM_DIR_NAME ".svn"/* Entries and status. *//** The schedule states an entry can be in. */typedef enum svn_wc_schedule_t{ /** Nothing special here */ svn_wc_schedule_normal, /** Slated for addition */ svn_wc_schedule_add, /** Slated for deletion */ svn_wc_schedule_delete, /** Slated for replacement (delete + add) */ svn_wc_schedule_replace} svn_wc_schedule_t;/** A working copy entry -- that is, revision control information about * one versioned entity. */typedef struct svn_wc_entry_t{ /* IMPORTANT: If you extend this structure, check svn_wc_entry_dup() to see if you need to extend that as well. */ /* General Attributes */ /** entry's name */ const char *name; /** base revision */ svn_revnum_t revision; /** url in repository */ const char *url; /** canonical repository URL or NULL if not known */ const char *repos; /** repository uuid */ const char *uuid; /** node kind (file, dir, ...) */ svn_node_kind_t kind; /* State information */ /** scheduling (add, delete, replace ...) */ svn_wc_schedule_t schedule; /** in a copied state */ svn_boolean_t copied; /** deleted, but parent rev lags behind */ svn_boolean_t deleted; /** absent -- we know an entry of this name exists, but that's all (usually this happens because of authz restrictions) */ svn_boolean_t absent; /** for THIS_DIR entry, implies whole entries file is incomplete */ svn_boolean_t incomplete; /** copyfrom location */ const char *copyfrom_url; /** copyfrom revision */ svn_revnum_t copyfrom_rev; /** old version of conflicted file */ const char *conflict_old; /** new version of conflicted file */ const char *conflict_new; /** working version of conflicted file */ const char *conflict_wrk; /** property reject file */ const char *prejfile; /** last up-to-date time for text contents (0 means no information available) */ apr_time_t text_time; /** last up-to-date time for properties (0 means no information available) */ apr_time_t prop_time; /** Hex MD5 checksum for the untranslated text base file, * can be @c NULL for backwards compatibility. */ const char *checksum; /* "Entry props" */ /** last revision this was changed */ svn_revnum_t cmt_rev; /** last date this was changed */ apr_time_t cmt_date; /** last commit author of this item */ const char *cmt_author; /** lock token or NULL if path not locked in this WC * @since New in 1.2. */ const char *lock_token; /** lock owner, or NULL if not locked in this WC * @since New in 1.2. */ const char *lock_owner; /** lock comment or NULL if not locked in this WC or no comment * @since New in 1.2. */ const char *lock_comment; /** Lock creation date or 0 if not locked in this WC * @since New in 1.2. */ apr_time_t lock_creation_date; /** Whether this entry has any working properties. * False if this information is not stored in the entry. * * @since New in 1.4. */ svn_boolean_t has_props; /** Whether this entry has property modifications. * * @note For working copies in older formats, this flag is not valid. * * @see svn_wc_props_modified_p(). * * @since New in 1.4. */ svn_boolean_t has_prop_mods; /** A space-separated list of all properties whose presence/absence is cached * in this entry. * * @see @c present_props. * * @since New in 1.4. */ const char *cachable_props; /** Cached property existence for this entry. * This is a space-separated list of property names. If a name exists in * @c cachable_props but not in this list, this entry does not have that * property. If a name exists in both lists, the property is present on this * entry. * * @since New in 1.4. */ const char *present_props; /* IMPORTANT: If you extend this structure, check svn_wc_entry_dup() to see if you need to extend that as well. */} svn_wc_entry_t;/** How an entries file's owner dir is named in the entries file. */#define SVN_WC_ENTRY_THIS_DIR ""/** Set @a *entry to an entry for @a path, allocated in the access baton * pool. If @a show_hidden is true, return the entry even if it's in * 'deleted' or 'absent' state. If @a path is not under revision * control, or if entry is hidden, not scheduled for re-addition, * and @a show_hidden is @c FALSE, then set @a *entry to @c NULL. * * @a *entry should not be modified, since doing so modifies the entries * cache in @a adm_access without changing the entries file on disk. * * If @a path is not a directory then @a adm_access must be an access baton * for the parent directory of @a path. To avoid needing to know whether * @a path is a directory or not, if @a path is a directory @a adm_access * can still be an access baton for the parent of @a path so long as the * access baton for @a path itself is in the same access baton set. * * Note that it is possible for @a path to be absent from disk but still * under revision control; and conversely, it is possible for @a path to * be present, but not under revision control. * * Use @a pool only for local processing. */svn_error_t *svn_wc_entry(const svn_wc_entry_t **entry, const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t show_hidden, apr_pool_t *pool);/** Parse the `entries' file for @a adm_access and return a hash @a entries, * whose keys are (<tt>const char *</tt>) entry names and values are * (<tt>svn_wc_entry_t *</tt>). The hash @a entries, and its keys and * values, are allocated from the pool used to open the @a adm_access * baton (that's how the entries caching works). @a pool is used for * transient allocations. * * Entries that are in a 'deleted' or 'absent' state (and not * scheduled for re-addition) are not returned in the hash, unless * @a show_hidden is true. * * @par Important: * The @a entries hash is the entries cache in @a adm_access * and so usually the hash itself, the keys and the values should be treated * as read-only. If any of these are modified then it is the caller's * responsibility to ensure that the entries file on disk is updated. Treat * the hash values as type (<tt>const svn_wc_entry_t *</tt>) if you wish to * avoid accidental modification. Modifying the schedule member is a * particularly bad idea, as the entries writing process relies on having * access to the original schedule. Use a duplicate entry to modify the * schedule. * * @par Important: * Only the entry structures representing files and * @c SVN_WC_ENTRY_THIS_DIR contain complete information. The entry * structures representing subdirs have only the `kind' and `state' * fields filled in. If you want info on a subdir, you must use this * routine to open its @a path and read the @c SVN_WC_ENTRY_THIS_DIR * structure, or call svn_wc_entry() on its @a path. */svn_error_t *svn_wc_entries_read(apr_hash_t **entries, svn_wc_adm_access_t *adm_access, svn_boolean_t show_hidden, apr_pool_t *pool);/** Return a duplicate of @a entry, allocated in @a pool. No part of the new * entry will be shared with @a entry. */svn_wc_entry_t *svn_wc_entry_dup(const svn_wc_entry_t *entry, apr_pool_t *pool);/** Given a @a dir_path under version control, decide if one of its * entries (@a entry) is in state of conflict; return the answers in * @a text_conflicted_p and @a prop_conflicted_p. * * (If the entry mentions that a .rej or .prej exist, but they are * both removed, assume the conflict has been resolved by the user.) */svn_error_t *svn_wc_conflicted_p(svn_boolean_t *text_conflicted_p, svn_boolean_t *prop_conflicted_p, const char *dir_path, const svn_wc_entry_t *entry, apr_pool_t *pool);/** Set @a *url and @a *rev to the ancestor URL and revision for @a path, * allocating in @a pool. @a adm_access must be an access baton for @a path. * * If @a url or @a rev is null, then ignore it (just don't return the * corresponding information).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -