📄 svn_wc.h
字号:
const char *mimetype1,
const char *mimetype2,
void *diff_baton);
/** A directory @a path was added. @a rev is the revision that the
* directory came from.
*
* @a adm_access will be an access baton for the directory containing
* @a path, or @c NULL if the diff editor is not using access batons.
*/
svn_error_t *(*dir_added) (svn_wc_adm_access_t *adm_access,
svn_wc_notify_state_t *state,
const char *path,
svn_revnum_t rev,
void *diff_baton);
/** A directory @a path was deleted.
*
* @a adm_access will be an access baton for the directory containing
* @a path, or @c NULL if the diff editor is not using access batons.
*
* If @a state is non-null, set @a *state to the state of the item
* after the delete operation has been performed. (In practice,
* this is only useful with merge, not diff; diff callbacks will
* probably set @a *state to @c svn_wc_notify_state_unknown, since
* they do not change the state and therefore do not bother to know
* the state after the operation.)
*/
svn_error_t *(*dir_deleted) (svn_wc_adm_access_t *adm_access,
svn_wc_notify_state_t *state,
const char *path,
void *diff_baton);
/** A list of property changes (@a propchanges) was applied to @a path.
*
* The array is a list of (@c svn_prop_t) structures.
*
* The original list of properties is provided in @a original_props,
* which is a hash of @c svn_string_t values, keyed on the property
* name.
*
* @a adm_access will be an access baton for the directory containing
* @a path, or @c NULL if the diff editor is not using access batons.
*
* If @a state is non-null, set @a *state to the state of the properties
* after the operation has been performed. (In practice, this is only
* useful with merge, not diff; diff callbacks will probably set @a *state
* to @c svn_wc_notify_state_unknown, since they do not change the state
* and therefore do not bother to know the state after the operation.)
*/
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 @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 @c 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.
*/
#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 */
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;
/** base64-encoded 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;
/* 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.
*
* Important note: 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.
*
* Important note: 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 @c 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);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -