You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by gs...@apache.org on 2012/06/06 23:09:49 UTC

svn commit: r1347130 - /subversion/trunk/subversion/libsvn_ra_serf/merge.c

Author: gstein
Date: Wed Jun  6 21:09:49 2012
New Revision: 1347130

URL: http://svn.apache.org/viewvc?rev=1347130&view=rev
Log:
Add a draft transition table. We don't support wildcard transitions
yet, so we are unable to capture property names, so we can't switch.

* subversion/libsvn_ra_serf/merge.c:
  (INITIAL, SKIP_HREF): new states, renames from NONE, IGNORE_PROP_NAME
  (merge_ttable): new transition table

Modified:
    subversion/trunk/subversion/libsvn_ra_serf/merge.c

Modified: subversion/trunk/subversion/libsvn_ra_serf/merge.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/merge.c?rev=1347130&r1=1347129&r2=1347130&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/merge.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/merge.c Wed Jun  6 21:09:49 2012
@@ -47,6 +47,7 @@
  * This enum represents the current state of our XML parsing for a MERGE.
  */
 typedef enum merge_state_e {
+  INITIAL = 0,
   NONE = 0,
   MERGE_RESPONSE,
   UPDATED_SET,
@@ -58,7 +59,8 @@ typedef enum merge_state_e {
   AUTHOR,
   NAME,
   DATE,
-  IGNORE_PROP_NAME,
+  SKIP_HREF,
+  IGNORE_PROP_NAME = SKIP_HREF, /* ### leave old name for now  */
   NEED_PROP_NAME,
   PROP_VAL
 } merge_state_e;
@@ -103,6 +105,61 @@ struct svn_ra_serf__merge_context_t
   svn_commit_info_t *commit_info;
 };
 
+#if 0
+/* ### can't do this yet because we don't have wildcard transitions, which
+   ### is needed to capture a property name.  */
+
+#define D_ "DAV:"
+#define S_ SVN_XML_NAMESPACE
+static const svn_ra_serf__xml_transition_t merge_ttable[] = {
+  { INITIAL, S_, "merge-response", MERGE_RESPONSE,
+    FALSE, { NULL }, FALSE, FALSE },
+
+  { MERGE_RESPONSE, S_, "updated-set", UPDATED_SET,
+    FALSE, { NULL }, FALSE, FALSE },
+
+  { UPDATED_SET, D_, "response", RESPONSE,
+    FALSE, { NULL }, FALSE, FALSE },
+
+  { RESPONSE, D_, "href", HREF,
+    FALSE, { NULL }, FALSE, FALSE },
+
+  { RESPONSE, D_, "propstat", PROPSTAT,
+    FALSE, { NULL }, FALSE, FALSE },
+
+  { PROPSTAT, D_, "prop", PROP,
+    FALSE, { NULL }, FALSE, FALSE },
+
+#if 0
+  /* Not needed.  */
+  { PROPSTAT, D_, "status", STATUS,
+    FALSE, { NULL }, FALSE, FALSE },
+#endif
+
+  { PROP, D_, "resourcetype", RESOURCE_TYPE,
+    FALSE, { NULL }, FALSE, FALSE },
+
+  { RESOURCE_TYPE, D_, "baseline", BASELINE,
+    FALSE, { NULL }, FALSE, FALSE },
+
+  { RESOURCE_TYPE, D_, "collection", COLLECTION,
+    FALSE, { NULL }, FALSE, FALSE },
+
+  { PROP, D_, "checked-in", SKIP_HREF,
+    FALSE, { NULL }, FALSE, FALSE },
+
+  { PROP, "*", "*", PROP_VAL,
+    FALSE, { NULL }, FALSE, FALSE },
+
+  { SKIP_HREF, D_, "href", PROP_VAL,
+    FALSE, { NULL }, FALSE, FALSE },
+
+  { 0 }
+};
+
+#endif
+
+
 
 static merge_info_t *
 push_state(svn_ra_serf__xml_parser_t *parser,