You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2016/11/29 12:59:52 UTC

svn commit: r1771900 - /subversion/trunk/subversion/libsvn_client/conflicts.c

Author: stsp
Date: Tue Nov 29 12:59:52 2016
New Revision: 1771900

URL: http://svn.apache.org/viewvc?rev=1771900&view=rev
Log:
* subversion/libsvn_wc/wc_db_update_move.c
  (conflict_tree_get_details_incoming_edit): If a missing node can't be found
   in the repository after an update, don't try to find edits for it.

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

Modified: subversion/trunk/subversion/libsvn_client/conflicts.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/conflicts.c?rev=1771900&r1=1771899&r2=1771900&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/conflicts.c (original)
+++ subversion/trunk/subversion/libsvn_client/conflicts.c Tue Nov 29 12:59:52 2016
@@ -4367,22 +4367,14 @@ conflict_tree_get_details_incoming_edit(
                                              conflict,
                                              scratch_pool, scratch_pool));
   operation = svn_client_conflict_get_operation(conflict);
-
-  b.ctx = ctx;
-  b.victim_abspath = svn_client_conflict_get_local_abspath(conflict);
-  b.result_pool = conflict->pool;
-  b.scratch_pool = scratch_pool;
-  b.edits = apr_array_make(
-               conflict->pool, 0,
-               sizeof(struct conflict_tree_incoming_edit_details *));
-  paths = apr_array_make(scratch_pool, 1, sizeof(const char *));
-  APR_ARRAY_PUSH(paths, const char *) = "";
-
-  revprops = apr_array_make(scratch_pool, 1, sizeof(const char *));
-  APR_ARRAY_PUSH(revprops, const char *) = SVN_PROP_REVISION_AUTHOR;
-
   if (operation == svn_wc_operation_update)
     {
+      b.node_kind = old_rev < new_rev ? new_node_kind : old_node_kind;
+
+      /* If there is no node then we cannot find any edits. */
+      if (b.node_kind == svn_node_none)
+        return SVN_NO_ERROR;
+
       url = svn_path_url_add_component2(repos_root_url,
                                         old_rev < new_rev ? new_repos_relpath
                                                           : old_repos_relpath,
@@ -4390,7 +4382,6 @@ conflict_tree_get_details_incoming_edit(
 
       b.repos_relpath = old_rev < new_rev ? new_repos_relpath
                                           : old_repos_relpath;
-      b.node_kind = old_rev < new_rev ? new_node_kind : old_node_kind;
     }
   else if (operation == svn_wc_operation_switch ||
            operation == svn_wc_operation_merge)
@@ -4411,6 +4402,20 @@ conflict_tree_get_details_incoming_edit(
                                                scratch_pool,
                                                scratch_pool));
 
+  paths = apr_array_make(scratch_pool, 1, sizeof(const char *));
+  APR_ARRAY_PUSH(paths, const char *) = "";
+
+  revprops = apr_array_make(scratch_pool, 1, sizeof(const char *));
+  APR_ARRAY_PUSH(revprops, const char *) = SVN_PROP_REVISION_AUTHOR;
+
+  b.ctx = ctx;
+  b.victim_abspath = svn_client_conflict_get_local_abspath(conflict);
+  b.result_pool = conflict->pool;
+  b.scratch_pool = scratch_pool;
+  b.edits = apr_array_make(
+               conflict->pool, 0,
+               sizeof(struct conflict_tree_incoming_edit_details *));
+
   SVN_ERR(svn_ra_get_log2(ra_session, paths,
                           old_rev < new_rev ? old_rev : new_rev,
                           old_rev < new_rev ? new_rev : old_rev,