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,