You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2012/05/10 19:24:14 UTC

svn commit: r1336802 - /subversion/trunk/subversion/libsvn_client/merge.c

Author: rhuijben
Date: Thu May 10 17:24:13 2012
New Revision: 1336802

URL: http://svn.apache.org/viewvc?rev=1336802&view=rev
Log:
* subversion/libsvn_client/merge.c
  (merge_file_changed): To get my stats up, show that with some error handling
    removed we can re-order the record mergeinfo in baton and actual merge
    operation without introducing a behavior change.

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

Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1336802&r1=1336801&r2=1336802&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Thu May 10 17:24:13 2012
@@ -1625,35 +1625,36 @@ merge_file_changed(svn_wc_notify_state_t
      diff-editor-mechanisms are doing the hard work of getting the
      fulltexts! */
 
-  /* Do property merge before text merge so that keyword expansion takes
-     into account the new property values. */
+  if (prop_state)
+    *prop_state = svn_wc_notify_state_unchanged;
+
   if (prop_changes->nelts > 0)
     {
-      const apr_array_header_t *props;
-
-      SVN_ERR(prepare_merge_props_changed(&props, local_abspath, prop_changes,
-                                          merge_b, scratch_pool));
+      /* Filter entry-props and unneeded properties in case of a record only
+         merge */
+      SVN_ERR(prepare_merge_props_changed(&prop_changes, local_abspath,
+                                          prop_changes, merge_b,
+                                          scratch_pool));
 
-      /* We only want to merge "regular" version properties:  by
-         definition, 'svn merge' shouldn't touch any pristine data */
-      if (props->nelts)
-        {
-          SVN_ERR(svn_wc_merge_props3(prop_state, ctx->wc_ctx, local_abspath,
-                                      NULL, NULL,
-                                      original_props, props, merge_b->dry_run,
-                                      ctx->conflict_func2,
-                                      ctx->conflict_baton2,
-                                      ctx->cancel_func, ctx->cancel_baton,
-                                      scratch_pool));
+      SVN_ERR(record_mergeinfo_prop_change(local_abspath, prop_changes,
+                                           merge_b, scratch_pool));
+    }
 
-          SVN_ERR(record_mergeinfo_prop_change(local_abspath, props, merge_b,
-                                               scratch_pool));
-        }
-      else if (prop_state)
-        *prop_state = svn_wc_notify_state_unchanged;
+  /* Do property merge before text merge so that keyword expansion takes
+     into account the new property values.
+     We only want to merge "regular" version properties:
+      - by definition, 'svn merge' shouldn't touch any pristine data */
+  if (prop_changes->nelts)
+    {
+      SVN_ERR(svn_wc_merge_props3(prop_state, ctx->wc_ctx, local_abspath,
+                                  NULL, NULL,
+                                  original_props, prop_changes,
+                                  merge_b->dry_run,
+                                  ctx->conflict_func2,
+                                  ctx->conflict_baton2,
+                                  ctx->cancel_func, ctx->cancel_baton,
+                                  scratch_pool));
     }
-  else if (prop_state)
-    *prop_state = svn_wc_notify_state_unchanged;
 
   /* Easy out: We are only applying mergeinfo differences. */
   if (merge_b->record_only)