Author: hwright
Date: Wed Apr 27 16:24:26 2011
New Revision: 1097168
URL: http://svn.apache.org/viewvc?rev=1097168&view=rev
Log:
Deprecate svn_info_t in favor of svn_info2_t, and move the latter to
svn_types.h. This removes obsolete fields, and allows us to generate working
copy info from within libsvn_wc.
* subversion/include/svn_types.h
(svn_wc_info2_t): New.
* subversion/include/svn_wc.h
(svn_wc_info_t): New, for stuff specific to the working copy.
* subversion/include/svn_client.h
(svn_info_t): Deprecate.
Modified:
subversion/trunk/subversion/include/svn_client.h
subversion/trunk/subversion/include/svn_types.h
subversion/trunk/subversion/include/svn_wc.h
Modified: subversion/trunk/subversion/include/svn_client.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_client.h?rev=1097168&r1=1097167&r2=1097168&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_client.h (original)
+++ subversion/trunk/subversion/include/svn_client.h Wed Apr 27 16:24:26 2011
@@ -5132,6 +5132,8 @@ svn_client_unlock(const apr_array_header
* type, to preserve binary compatibility.
*
* @since New in 1.2.
+ * @deprecated Provided for backward compatibility with the 1.6 API. The new
+ * API is #svn_info2_t, located in svn_types.h.
*/
typedef struct svn_info_t
{
Modified: subversion/trunk/subversion/include/svn_types.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_types.h?rev=1097168&r1=1097167&r2=1097168&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_types.h (original)
+++ subversion/trunk/subversion/include/svn_types.h Wed Apr 27 16:24:26 2011
@@ -1214,6 +1214,65 @@ typedef svn_error_t *(*svn_changelist_re
apr_pool_t *pool);
+/** Forward declaration, for the purpose of the #svn_info2_t struct. */
+struct svn_wc_info_t;
+
+/**
+ * A structure which describes various system-generated metadata about
+ * a working-copy path or URL.
+ *
+ * @note Fields may be added to the end of this structure in future
+ * versions. Therefore, users shouldn't allocate structures of this
+ * type, to preserve binary compatibility.
+ *
+ * @since New in 1.7.
+ */
+typedef struct svn_info2_t
+{
+ /** Where the item lives in the repository. */
+ const char *URL;
+
+ /** The revision of the object. If path_or_url is a working-copy
+ * path, then this is its current working revnum. If path_or_url
+ * is a URL, then this is the repos revision that path_or_url lives in. */
+ svn_revnum_t rev;
+
+ /** The node's kind. */
+ svn_node_kind_t kind;
+
+ /** The root URL of the repository. */
+ const char *repos_root_URL;
+
+ /** The repository's UUID. */
+ const char *repos_UUID;
+
+ /** The last revision in which this object changed. */
+ svn_revnum_t last_changed_rev;
+
+ /** The date of the last_changed_rev. */
+ apr_time_t last_changed_date;
+
+ /** The author of the last_changed_rev. */
+ const char *last_changed_author;
+
+ /** An exclusive lock, if present. Could be either local or remote. */
+ svn_lock_t *lock;
+
+ /**
+ * The size of the file in the repository (untranslated,
+ * e.g. without adjustment of line endings and keyword
+ * expansion). Only applicable for file -- not directory -- URLs.
+ * For working copy paths, size64 will be #SVN_INVALID_FILESIZE.
+ * @since New in 1.6.
+ */
+ svn_filesize_t size;
+
+ /* Possible information about the working copy, NULL if not valid. */
+ struct svn_wc_info_t *wc_info;
+
+} svn_info2_t;
+
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/trunk/subversion/include/svn_wc.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_wc.h?rev=1097168&r1=1097167&r2=1097168&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_wc.h (original)
+++ subversion/trunk/subversion/include/svn_wc.h Wed Apr 27 16:24:26 2011
@@ -2994,6 +2994,43 @@ svn_wc_entry_dup(const svn_wc_entry_t *e
/** @} */
+/**
+ * This struct contains information about the working copy, and is used
+ * in conjunction with #svn_info2_t.
+ *
+ * @note Fields may be added to the end of this structure in future
+ * versions. Therefore, users shouldn't allocate structures of this
+ * type, to preserve binary compatibility.
+ *
+ * @since New in 1.7.
+ */
+typedef struct svn_wc_info_t
+{
+ /* ### Do we still need schedule? */
+ svn_wc_schedule_t schedule;
+ const char *copyfrom_url;
+ svn_revnum_t copyfrom_rev;
+ apr_time_t text_time;
+ const char *checksum;
+ const char *changelist;
+ svn_depth_t depth;
+
+ /**
+ * The size of the file after being translated into its local
+ * representation, or #SVN_INVALID_FILESIZE if unknown.
+ * Not applicable for directories.
+ */
+ svn_filesize_t working_size64;
+
+ /** Info on any conflict of which this node is a victim. Otherwise NULL. */
+ svn_wc_conflict_description2_t *conflict;
+
+ /** The local absolute path of the working copy root. */
+ const char *wcroot_abspath;
+
+} svn_wc_info_t;
+
+
/** Given @a local_abspath in a dir under version control, decide if it is
* in a state of conflict; return the answers in @a *text_conflicted_p, @a
* *prop_conflicted_p, and @a *tree_conflicted_p. If one or two of the