Author: hwright
Date: Tue Nov 22 16:40:03 2011
New Revision: 1205071
URL: http://svn.apache.org/viewvc?rev=1205071&view=rev
Log:
Ev2 shims: when adding files and directories, also set their properties.
* subversion/libsvn_delta/compat.c
(build): If given a kind, don't bother fetching it.
(add_directory_cb, add_file_cb): If given properties, set them.
Modified:
subversion/trunk/subversion/libsvn_delta/compat.c
Modified: subversion/trunk/subversion/libsvn_delta/compat.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_delta/compat.c?rev=1205071&r1=1205070&r2=1205071&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_delta/compat.c (original)
+++ subversion/trunk/subversion/libsvn_delta/compat.c Tue Nov 22 16:40:03 2011
@@ -835,8 +835,12 @@ build(struct editor_baton *eb,
apr_hash_t *current_props;
apr_array_header_t *propdiffs;
- SVN_ERR(eb->fetch_kind_func(&operation->kind, eb->fetch_kind_baton,
- relpath, scratch_pool));
+ if (kind == svn_kind_unknown)
+ SVN_ERR(eb->fetch_kind_func(&operation->kind, eb->fetch_kind_baton,
+ relpath, scratch_pool));
+ else
+ operation->kind = kind;
+
SVN_ERR(eb->fetch_props_func(¤t_props, eb->fetch_props_baton,
relpath, scratch_pool, scratch_pool));
@@ -955,6 +959,11 @@ add_directory_cb(void *baton,
NULL, SVN_INVALID_REVNUM,
NULL, NULL, SVN_INVALID_REVNUM, scratch_pool));
+ if (props && apr_hash_count(props) > 0)
+ SVN_ERR(build(eb, ACTION_PROPSET, relpath, svn_kind_dir,
+ NULL, SVN_INVALID_REVNUM, props,
+ NULL, SVN_INVALID_REVNUM, scratch_pool));
+
return SVN_NO_ERROR;
}
@@ -985,6 +994,11 @@ add_file_cb(void *baton,
NULL, SVN_INVALID_REVNUM,
NULL, tmp_filename, SVN_INVALID_REVNUM, scratch_pool));
+ if (props && apr_hash_count(props) > 0)
+ SVN_ERR(build(eb, ACTION_PROPSET, relpath, svn_kind_file,
+ NULL, SVN_INVALID_REVNUM, props,
+ NULL, SVN_INVALID_REVNUM, scratch_pool));
+
return SVN_NO_ERROR;
}