32 #include <apr_pools.h>
33 #include <apr_tables.h>
151 const char *prop_name);
189 const char *prop_name);
294 apr_array_header_t **entry_props,
295 apr_array_header_t **wc_props,
296 apr_array_header_t **regular_props,
323 const apr_hash_t *target_props,
324 const apr_hash_t *source_props,
344 #define SVN_PROP_PREFIX "svn:"
370 #define SVN_PROP_BOOLEAN_TRUE "*"
373 #define SVN_PROP_MIME_TYPE SVN_PROP_PREFIX "mime-type"
376 #define SVN_PROP_IGNORE SVN_PROP_PREFIX "ignore"
379 #define SVN_PROP_EOL_STYLE SVN_PROP_PREFIX "eol-style"
382 #define SVN_PROP_KEYWORDS SVN_PROP_PREFIX "keywords"
385 #define SVN_PROP_EXECUTABLE SVN_PROP_PREFIX "executable"
392 #define SVN_PROP_EXECUTABLE_VALUE SVN_PROP_BOOLEAN_TRUE
396 #define SVN_PROP_NEEDS_LOCK SVN_PROP_PREFIX "needs-lock"
403 #define SVN_PROP_NEEDS_LOCK_VALUE SVN_PROP_BOOLEAN_TRUE
406 #define SVN_PROP_SPECIAL SVN_PROP_PREFIX "special"
413 #define SVN_PROP_SPECIAL_VALUE SVN_PROP_BOOLEAN_TRUE
433 #define SVN_PROP_EXTERNALS SVN_PROP_PREFIX "externals"
445 #define SVN_PROP_MERGEINFO SVN_PROP_PREFIX "mergeinfo"
451 #define SVN_PROP_INHERITABLE_AUTO_PROPS SVN_PROP_PREFIX "auto-props"
457 #define SVN_PROP_INHERITABLE_IGNORES SVN_PROP_PREFIX "global-ignores"
479 #define SVN_PROP_TEXT_TIME SVN_PROP_PREFIX "text-time"
485 #define SVN_PROP_OWNER SVN_PROP_PREFIX "owner"
489 #define SVN_PROP_GROUP SVN_PROP_PREFIX "group"
494 #define SVN_PROP_UNIX_MODE SVN_PROP_PREFIX "unix-mode"
504 #define SVN_PROP_NODE_ALL_PROPS SVN_PROP_MIME_TYPE, \
506 SVN_PROP_EOL_STYLE, \
508 SVN_PROP_EXECUTABLE, \
509 SVN_PROP_NEEDS_LOCK, \
511 SVN_PROP_EXTERNALS, \
512 SVN_PROP_MERGEINFO, \
513 SVN_PROP_INHERITABLE_AUTO_PROPS, \
514 SVN_PROP_INHERITABLE_IGNORES, \
516 SVN_PROP_TEXT_TIME, \
544 #define SVN_PROP_WC_PREFIX SVN_PROP_PREFIX "wc:"
549 #define SVN_PROP_ENTRY_PREFIX SVN_PROP_PREFIX "entry:"
552 #define SVN_PROP_ENTRY_COMMITTED_REV SVN_PROP_ENTRY_PREFIX "committed-rev"
555 #define SVN_PROP_ENTRY_COMMITTED_DATE SVN_PROP_ENTRY_PREFIX "committed-date"
558 #define SVN_PROP_ENTRY_LAST_AUTHOR SVN_PROP_ENTRY_PREFIX "last-author"
561 #define SVN_PROP_ENTRY_UUID SVN_PROP_ENTRY_PREFIX "uuid"
565 #define SVN_PROP_ENTRY_LOCK_TOKEN SVN_PROP_ENTRY_PREFIX "lock-token"
570 #define SVN_PROP_CUSTOM_PREFIX SVN_PROP_PREFIX "custom:"
584 #define SVN_PROP_REVISION_AUTHOR SVN_PROP_PREFIX "author"
587 #define SVN_PROP_REVISION_LOG SVN_PROP_PREFIX "log"
590 #define SVN_PROP_REVISION_DATE SVN_PROP_PREFIX "date"
603 #define SVN_PROP_REVISION_ORIG_DATE SVN_PROP_PREFIX "original-date"
609 #define SVN_PROP_REVISION_AUTOVERSIONED SVN_PROP_PREFIX "autoversioned"
618 #define SVNSYNC_PROP_PREFIX SVN_PROP_PREFIX "sync-"
627 #define SVNSYNC_PROP_LOCK SVNSYNC_PROP_PREFIX "lock"
632 #define SVNSYNC_PROP_FROM_URL SVNSYNC_PROP_PREFIX "from-url"
636 #define SVNSYNC_PROP_FROM_UUID SVNSYNC_PROP_PREFIX "from-uuid"
641 #define SVNSYNC_PROP_LAST_MERGED_REV SVNSYNC_PROP_PREFIX "last-merged-rev"
646 #define SVNSYNC_PROP_CURRENTLY_COPYING SVNSYNC_PROP_PREFIX "currently-copying"
652 #define SVN_PROP_REVISION_ALL_PROPS SVN_PROP_REVISION_AUTHOR, \
653 SVN_PROP_REVISION_LOG, \
654 SVN_PROP_REVISION_DATE, \
655 SVN_PROP_REVISION_AUTOVERSIONED, \
656 SVN_PROP_REVISION_ORIG_DATE, \
658 SVNSYNC_PROP_FROM_URL, \
659 SVNSYNC_PROP_FROM_UUID, \
660 SVNSYNC_PROP_LAST_MERGED_REV, \
661 SVNSYNC_PROP_CURRENTLY_COPYING,
679 #define SVN_PROP_TXN_PREFIX SVN_PROP_PREFIX "txn-"
688 #define SVN_PROP_TXN_CLIENT_COMPAT_VERSION \
689 SVN_PROP_TXN_PREFIX "client-compat-version"
695 #define SVN_PROP_TXN_USER_AGENT \
696 SVN_PROP_TXN_PREFIX "user-agent"
708 #define SVN_PROP_REVISION_PREFIX SVN_PROP_PREFIX "revision-"
Counted-length strings for Subversion, plus some C string goodies.
svn_error_t * svn_categorize_props(const apr_array_header_t *proplist, apr_array_header_t **entry_props, apr_array_header_t **wc_props, apr_array_header_t **regular_props, apr_pool_t *pool)
Given a proplist array of svn_prop_t structures, allocate three new arrays in pool.
svn_boolean_t svn_prop_is_known_svn_file_prop(const char *prop_name)
Return TRUE iff prop_name is in the "svn:" name space and is a known versioned property that is allow...
const svn_string_t * value
Property value.
svn_boolean_t svn_prop_is_boolean(const char *prop_name)
Return TRUE iff prop_name is a Subversion property whose value is interpreted as a boolean...
svn_error_t * svn_prop_diffs(apr_array_header_t **propdiffs, const apr_hash_t *target_props, const apr_hash_t *source_props, apr_pool_t *pool)
Given two property hashes (const char *name -> const svn_string_t *value), deduce the differences bet...
svn_prop_kind_t svn_property_kind2(const char *prop_name)
Return the property kind of a property named prop_name.
apr_array_header_t * svn_prop_array_dup(const apr_array_header_t *array, apr_pool_t *pool)
Duplicate an array of svn_prop_t items using pool.
Seen if user does "svn proplist"; note that this includes some "svn:" props and all user props...
svn_boolean_t svn_prop_is_known_svn_dir_prop(const char *prop_name)
Return TRUE iff prop_name is in the "svn:" name space and is a known versioned property that is allow...
svn_prop_kind_t svn_property_kind(int *prefix_len, const char *prop_name)
Return the prop kind of a property named prop_name, and (if prefix_len is non-NULL) set *prefix_len t...
svn_boolean_t svn_prop_name_is_valid(const char *prop_name)
Return TRUE iff prop_name is a valid property name.
Client-side only, stored by specific RA layer.
enum svn_prop_kind svn_prop_kind_t
Subversion distinguishes among several kinds of properties, particularly on the client-side.
svn_boolean_t svn_prop_is_svn_prop(const char *prop_name)
Return TRUE iff prop_name represents the name of a Subversion property.
svn_boolean_t svn_prop_is_known_svn_rev_prop(const char *prop_name)
Return TRUE iff prop_name is in the "svn:" name space and is a known revision property ("svn:log" or ...
svn_boolean_t svn_prop_needs_translation(const char *prop_name)
If prop_name requires that its value be stored as UTF8/LF in the repository, then return TRUE...
In .svn/entries, i.e., author, date, etc.
svn_prop_kind
Subversion distinguishes among several kinds of properties, particularly on the client-side.
const char * path_or_url
The absolute working copy path, relative filesystem path, or URL from which the properties in prop_ha...
struct svn_prop_t svn_prop_t
A general in-memory representation of a single property.
Subversion's data types.
svn_prop_t * svn_prop_dup(const svn_prop_t *prop, apr_pool_t *pool)
Return a duplicate of prop, allocated in pool.
#define SVN_DEPRECATED
Macro used to mark deprecated functions.
apr_array_header_t * svn_prop_hash_to_array(const apr_hash_t *hash, apr_pool_t *pool)
Given a hash (keys const char * and values const svn_string_t) of properties, returns an array of svn...
A structure to represent inherited properties.
apr_hash_t * prop_hash
A hash of (const char *) inherited property names, and (svn_string_t *) property values.
apr_hash_t * svn_prop_array_to_hash(const apr_array_header_t *properties, apr_pool_t *result)
Given an array of svn_prop_t items, return a hash mapping const char * property names to const svn_st...
apr_hash_t * svn_prop_hash_dup(const apr_hash_t *hash, apr_pool_t *pool)
Creates a deep copy of hash (keys const char * and values const svn_string_t *) in pool...
const char * name
Property name.
A general in-memory representation of a single property.
int svn_boolean_t
YABT: Yet Another Boolean Type.
svn_boolean_t svn_prop_has_svn_prop(const apr_hash_t *props, apr_pool_t *pool)
Return TRUE iff props has at least one property whose name represents the name of a Subversion proper...
svn_boolean_t svn_prop_is_known_svn_node_prop(const char *prop_name)
Return TRUE iff prop_name is in the "svn:" name space and is a known versioned property that is allow...
const char * svn_prop_get_value(const apr_hash_t *properties, const char *prop_name)
Return the value of property prop_name as it is in properties, with values const svn_string_t.
struct svn_prop_inherited_item_t svn_prop_inherited_item_t
A structure to represent inherited properties.