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 2010/05/09 00:53:53 UTC
svn commit: r942478 - /subversion/trunk/subversion/libsvn_wc/update_editor.c
Author: gstein
Date: Sat May 8 22:53:52 2010
New Revision: 942478
URL: http://svn.apache.org/viewvc?rev=942478&view=rev
Log:
Fix update_tests 28 by ensuring the prop changes are queued before any
work that is queued by merge_file(). We need a longer-term fix, but this
will do for now.
* subversion/libsvn_wc/update_editor.c:
(close_file): queue up property changes before merge_file() work items.
Modified:
subversion/trunk/subversion/libsvn_wc/update_editor.c
Modified: subversion/trunk/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/update_editor.c?rev=942478&r1=942477&r2=942478&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/trunk/subversion/libsvn_wc/update_editor.c Sat May 8 22:53:52 2010
@@ -4864,6 +4864,34 @@ close_file(void *file_baton,
svn_wc__db_kind_file, new_base_props,
pool));
+ {
+ apr_hash_t *props;
+ apr_array_header_t *prop_diffs;
+
+ /* ### grr. the props changes need to occur before the merge_file()
+ ### queued work. we need merge_file() to return a set of work
+ ### items so that we can order them correctly. for now, get the
+ ### new props into their old files. the in-database values are
+ ### going to occur later (skew!), but we'll get that fixed before
+ ### switching to db properties. */
+ SVN_ERR(svn_wc__db_wq_add(eb->db, fb->local_abspath, work_items, pool));
+
+ props = new_actual_props;
+ SVN_ERR(svn_prop_diffs(&prop_diffs, new_actual_props, new_base_props,
+ pool));
+ if (prop_diffs->nelts == 0)
+ props = NULL;
+
+ SVN_ERR(build_write_actual_props(&work_items, fb->local_abspath,
+ svn_wc__db_kind_file,
+ props,
+ pool));
+ SVN_ERR(svn_wc__db_wq_add(eb->db, fb->local_abspath, work_items, pool));
+
+ /* ### nothing for add_file to queue up. */
+ work_items = NULL;
+ }
+
/* This writes a whole bunch of log commands to install wcprops. */
/* ### no it doesn't. this immediately modifies them. should probably
### occur later, when we know the (new) BASE node exists. */