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


Reply via email to