Autoversioning bugfix: the autoversioned PROPPATCH change was causing
props in the svn 'custom' namespace to be skipped during a PROPFIND, oops.
* deadprops.c (get_repos_propname): undo previous change (r4193).
too many routines use this helper function.
(save_value): instead, put the autoversioning PROPPATCH behavior in
here. If the incoming autoversion prop isn't in one of the two svn
xml namespaces, then just pretend it's in the custom one.
git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/autoversion@844269 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/subversion/mod_dav_svn/deadprops.c b/subversion/mod_dav_svn/deadprops.c
index cec2789..41240cb 100644
--- a/subversion/mod_dav_svn/deadprops.c
+++ b/subversion/mod_dav_svn/deadprops.c
@@ -64,8 +64,7 @@
svn_stringbuf_appendcstr(db->work, name->name);
*repos_propname = db->work->data;
}
- else if ((strcmp(name->ns, SVN_DAV_PROP_NS_CUSTOM) == 0)
- || db->resource->info->repos->autoversioning)
+ else if (strcmp(name->ns, SVN_DAV_PROP_NS_CUSTOM) == 0)
{
/* the name of a custom prop is just the name -- no ns URI */
*repos_propname = name->name;
@@ -138,11 +137,16 @@
get_repos_propname(db, name, &propname);
if (propname == NULL)
- return dav_new_error(db->p, HTTP_CONFLICT, 0,
- "Properties may only be defined in the "
- SVN_DAV_PROP_NS_SVN " and " SVN_DAV_PROP_NS_CUSTOM
- " namespaces.");
-
+ {
+ if (db->resource->info->repos->autoversioning)
+ /* ignore the unknown namespace of the incoming prop. */
+ propname = name->name;
+ else
+ return dav_new_error(db->p, HTTP_CONFLICT, 0,
+ "Properties may only be defined in the "
+ SVN_DAV_PROP_NS_SVN " and " SVN_DAV_PROP_NS_CUSTOM
+ " namespaces.");
+ }
/* Working Baseline or Working (Version) Resource */
if (db->resource->baselined)