You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2015/11/10 18:43:41 UTC

svn commit: r1713705 - /subversion/branches/move-tracking-2/subversion/svnmover/merge3.c

Author: julianfoad
Date: Tue Nov 10 17:43:40 2015
New Revision: 1713705

URL: http://svn.apache.org/viewvc?rev=1713705&view=rev
Log:
On the 'move-tracking-2' branch: Factor out conflict printing into separate
functions.

* subversion/svnmover/merge3.c
  (element_merge3_conflict_str,
   name_clash_conflict_str,
   cycle_conflict_str,
   orphan_conflict_str): New, extracted...
  (svnmover_display_conflicts): ... from here.

Modified:
    subversion/branches/move-tracking-2/subversion/svnmover/merge3.c

Modified: subversion/branches/move-tracking-2/subversion/svnmover/merge3.c
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/svnmover/merge3.c?rev=1713705&r1=1713704&r2=1713705&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/svnmover/merge3.c (original)
+++ subversion/branches/move-tracking-2/subversion/svnmover/merge3.c Tue Nov 10 17:43:40 2015
@@ -137,6 +137,17 @@ subbranch_str(svn_branch_state_t *branch
   return branch_str(subbranch, result_pool);
 }
 
+/*  */
+static const char *
+brief_eid_and_name_or_nil(svn_element_content_t *e,
+                          apr_pool_t *result_pool)
+{
+  return e ? apr_psprintf(result_pool, "%d/%s", e->parent_eid, e->name)
+           : "<nil>";
+
+  return SVN_NO_ERROR;
+}
+
 /* Options to control how strict the merge is about detecting conflicts.
  *
  * The options affect cases that, depending on the user's preference, could
@@ -194,6 +205,19 @@ element_merge3_conflict_dup(element_merg
                                         old_conflict->side2, result_pool);
 }
 
+static const char *
+element_merge3_conflict_str(element_merge3_conflict_t *c,
+                            int eid,
+                            apr_pool_t *result_pool)
+{
+  return apr_psprintf(result_pool,
+                      "single-element conflict: e%d: yca=%s, side1=%s, side2=%s",
+                      eid,
+                      brief_eid_and_name_or_nil(c->yca, result_pool),
+                      brief_eid_and_name_or_nil(c->side1, result_pool),
+                      brief_eid_and_name_or_nil(c->side2, result_pool));
+}
+
 /* A name-clash conflict description.
  */
 typedef struct name_clash_conflict_t
@@ -217,6 +241,27 @@ name_clash_conflict_create(int parent_ei
   return c;
 }
 
+static const char *
+name_clash_conflict_str(name_clash_conflict_t *c,
+                        apr_pool_t *result_pool)
+{
+  apr_hash_index_t *hi2;
+  const char *s;
+
+  s = apr_psprintf(result_pool,
+                   "name-clash conflict: peid %d, name '%s', %d elements",
+                   c->parent_eid, c->name, apr_hash_count(c->elements));
+
+  for (hi2 = apr_hash_first(result_pool, c->elements);
+       hi2; hi2 = apr_hash_next(hi2))
+    {
+      int eid = svn_int_hash_this_key(hi2);
+
+      apr_psprintf(result_pool, "%s\n    element %d", s, eid);
+    }
+  return s;
+}
+
 /* A cycle conflict description.
  */
 typedef struct cycle_conflict_t
@@ -234,6 +279,27 @@ cycle_conflict_create(apr_pool_t *result
   return c;
 }
 
+static const char *
+cycle_conflict_str(cycle_conflict_t *c,
+                   int eid,
+                   apr_pool_t *result_pool)
+{
+  const char *s = "elements";
+  apr_hash_index_t *hi2;
+
+  for (hi2 = apr_hash_first(result_pool, c->elements);
+       hi2; hi2 = apr_hash_next(hi2))
+    {
+      int eid2 = svn_int_hash_this_key(hi2);
+
+      s = apr_psprintf(result_pool, "%s e%d", s, eid2);
+    }
+
+  s = apr_psprintf(result_pool, "cycle conflict: e%d: %s",
+                   eid, s);
+  return s;
+}
+
 /* An orphan conflict description.
  */
 typedef struct orphan_conflict_t
@@ -251,6 +317,17 @@ orphan_conflict_create(svn_element_conte
   return c;
 }
 
+static const char *
+orphan_conflict_str(orphan_conflict_t *c,
+                    int eid,
+                    apr_pool_t *result_pool)
+{
+  return apr_psprintf(result_pool,
+                      "orphan conflict: e%d: %d/%s: parent e%d does not exist",
+                      eid, c->element->parent_eid, c->element->name,
+                      c->element->parent_eid);
+}
+
 /*  */
 static conflict_storage_t *
 conflict_storage_create(apr_pool_t *result_pool)
@@ -260,17 +337,6 @@ conflict_storage_create(apr_pool_t *resu
   return c;
 }
 
-/*  */
-static const char *
-brief_eid_and_name_or_nil(svn_element_content_t *e,
-                          apr_pool_t *result_pool)
-{
-  return e ? apr_psprintf(result_pool, "%d/%s", e->parent_eid, e->name)
-           : "<nil>";
-
-  return SVN_NO_ERROR;
-}
-
 svn_error_t *
 svnmover_display_conflicts(conflict_storage_t *conflict_storage,
                            apr_pool_t *scratch_pool)
@@ -286,11 +352,8 @@ svnmover_display_conflicts(conflict_stor
       int eid = svn_int_hash_this_key(hi);
       element_merge3_conflict_t *c = apr_hash_this_val(hi);
 
-      svnmover_notify("  single-element conflict: e%d: yca=%s, side1=%s, side2=%s",
-                      eid,
-                      brief_eid_and_name_or_nil(c->yca, scratch_pool),
-                      brief_eid_and_name_or_nil(c->side1, scratch_pool),
-                      brief_eid_and_name_or_nil(c->side2, scratch_pool));
+      svnmover_notify("  %s",
+                      element_merge3_conflict_str(c, eid, scratch_pool));
     }
   for (hi = apr_hash_first(scratch_pool,
                            conflict_storage->name_clash_conflicts);
@@ -298,17 +361,9 @@ svnmover_display_conflicts(conflict_stor
     {
       /*const char *key = apr_hash_this_key(hi);*/
       name_clash_conflict_t *c = apr_hash_this_val(hi);
-      apr_hash_index_t *hi2;
 
-      svnmover_notify("  name-clash conflict: peid %d, name '%s', %d elements",
-                      c->parent_eid, c->name, apr_hash_count(c->elements));
-      for (hi2 = apr_hash_first(scratch_pool, c->elements);
-           hi2; hi2 = apr_hash_next(hi2))
-        {
-          int eid = svn_int_hash_this_key(hi2);
-
-          svnmover_notify("    element %d", eid);
-        }
+      svnmover_notify("  %s",
+                      name_clash_conflict_str(c, scratch_pool));
     }
   for (hi = apr_hash_first(scratch_pool,
                            conflict_storage->cycle_conflicts);
@@ -316,19 +371,9 @@ svnmover_display_conflicts(conflict_stor
     {
       int eid = svn_int_hash_this_key(hi);
       cycle_conflict_t *c = apr_hash_this_val(hi);
-      const char *desc = "elements";
-      apr_hash_index_t *hi2;
-
-      for (hi2 = apr_hash_first(scratch_pool, c->elements);
-           hi2; hi2 = apr_hash_next(hi2))
-        {
-          int eid2 = svn_int_hash_this_key(hi2);
 
-          desc = apr_psprintf(scratch_pool, "%s e%d", desc, eid2);
-        }
-
-      svnmover_notify("  cycle conflict: e%d: %s",
-                      eid, desc);
+      svnmover_notify("  %s",
+                      cycle_conflict_str(c, eid, scratch_pool));
     }
   for (hi = apr_hash_first(scratch_pool,
                            conflict_storage->orphan_conflicts);
@@ -337,9 +382,8 @@ svnmover_display_conflicts(conflict_stor
       int eid = svn_int_hash_this_key(hi);
       orphan_conflict_t *c = apr_hash_this_val(hi);
 
-      svnmover_notify("  orphan conflict: e%d: %d/%s: parent e%d does not exist",
-                      eid, c->element->parent_eid, c->element->name,
-                      c->element->parent_eid);
+      svnmover_notify("  %s",
+                      orphan_conflict_str(c, eid, scratch_pool));
     }
 
   svnmover_notify(_("Summary of conflicts:\n"