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"