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 2015/07/07 03:03:48 UTC
svn commit: r1689542 - in
/subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer:
logic.c mergeinfo-normalizer.h
Author: stefan2
Date: Tue Jul 7 01:03:47 2015
New Revision: 1689542
URL: http://svn.apache.org/r1689542
Log:
On the svn-mergeinfo-normalizer branch:
Add a "run-analysis" flag to the command options. This will produce a
condensed variant of the verbose output, only showing the "problematic"
parts. Future commits will switch the analysis command to using this code.
* tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
(svn_min__opt_state_t): Add RUN_ANALYSIS flag.
* tools/client-side/svn-mergeinfo-normalizer/logic.c
(show_missing_parent,
show_reverse_ranges
show_branch_elision,
show_elision_header,
show_elision_result): Show a reduced output in "analysis" mode without
the "verbose" flag being set.
(normalize): Don't show progress in "analysis" mode.
Modified:
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/logic.c
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
Modified: subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/logic.c
URL: http://svn.apache.org/viewvc/subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/logic.c?rev=1689542&r1=1689541&r2=1689542&view=diff
==============================================================================
--- subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/logic.c (original)
+++ subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/logic.c Tue Jul 7 01:03:47 2015
@@ -81,7 +81,7 @@ show_missing_parent(const char *subtree_
svn_min__opt_state_t *opt_state,
apr_pool_t *scratch_pool)
{
- if (!opt_state->verbose)
+ if (!opt_state->verbose && !opt_state->run_analysis)
return SVN_NO_ERROR;
if (misaligned)
@@ -102,7 +102,10 @@ show_reverse_ranges(const char *subtree_
svn_min__opt_state_t *opt_state,
apr_pool_t *scratch_pool)
{
- if (opt_state->verbose && reverse_ranges->nelts)
+ if (reverse_ranges->nelts)
+ return SVN_NO_ERROR;
+
+ if (opt_state->verbose || opt_state->run_analysis)
{
SVN_ERR(svn_cmdline_printf(scratch_pool,
_(" Reverse range(s) found for %s:\n"),
@@ -122,10 +125,7 @@ show_branch_elision(const char *branch,
svn_min__opt_state_t *opt_state,
apr_pool_t *scratch_pool)
{
- if (!opt_state->verbose)
- return SVN_NO_ERROR;
-
- if (!subtree_only->nelts && !parent_only->nelts)
+ if (opt_state->verbose && !subtree_only->nelts && !parent_only->nelts)
{
SVN_ERR(svn_cmdline_printf(scratch_pool,
_(" elide redundant branch %s\n"),
@@ -135,19 +135,22 @@ show_branch_elision(const char *branch,
if (operative_outside_subtree->nelts || operative_in_subtree->nelts)
{
- SVN_ERR(svn_cmdline_printf(scratch_pool,
- _(" CANNOT elide branch %s\n"),
- branch));
- if (operative_outside_subtree->nelts)
- SVN_ERR(print_ranges(operative_outside_subtree,
- _("revisions not movable to parent: "),
- scratch_pool));
- if (operative_in_subtree->nelts)
- SVN_ERR(print_ranges(operative_in_subtree,
- _("revisions missing in sub-node: "),
- scratch_pool));
+ if (opt_state->verbose || opt_state->run_analysis)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _(" CANNOT elide branch %s\n"),
+ branch));
+ if (operative_outside_subtree->nelts)
+ SVN_ERR(print_ranges(operative_outside_subtree,
+ _("revisions not movable to parent: "),
+ scratch_pool));
+ if (operative_in_subtree->nelts)
+ SVN_ERR(print_ranges(operative_in_subtree,
+ _("revisions missing in sub-node: "),
+ scratch_pool));
+ }
}
- else
+ else if (opt_state->verbose)
{
SVN_ERR(svn_cmdline_printf(scratch_pool,
_(" elide branch %s\n"),
@@ -526,23 +529,30 @@ show_elision_header(const char *parent_p
svn_min__opt_state_t *opt_state,
apr_pool_t *scratch_pool)
{
- if (!opt_state->verbose)
- return SVN_NO_ERROR;
-
- if (*relpath)
- SVN_ERR(svn_cmdline_printf(scratch_pool,
- _("Trying to elide mergeinfo from path\n"
- " %s\n"
- " into mergeinfo at path\n"
- " %s\n\n"),
- svn_dirent_join(parent_path, relpath,
- scratch_pool),
- parent_path));
- else
- SVN_ERR(svn_cmdline_printf(scratch_pool,
- _("Trying to elide mergeinfo at path\n"
- " %s\n\n"),
- parent_path));
+ if (opt_state->verbose)
+ {
+ if (*relpath)
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("Trying to elide mergeinfo from path\n"
+ " %s\n"
+ " into mergeinfo at path\n"
+ " %s\n\n"),
+ svn_dirent_join(parent_path, relpath,
+ scratch_pool),
+ parent_path));
+ else
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("Trying to elide mergeinfo at path\n"
+ " %s\n\n"),
+ parent_path));
+ }
+ else if (opt_state->run_analysis)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("Trying to elide mergeinfo at path %s\n"),
+ svn_dirent_join(parent_path, relpath,
+ scratch_pool)));
+ }
return SVN_NO_ERROR;
}
@@ -564,41 +574,58 @@ show_elision_result(svn_mergeinfo_t pare
svn_min__opt_state_t *opt_state,
apr_pool_t *scratch_pool)
{
- if (!opt_state->verbose)
- return SVN_NO_ERROR;
-
- if (apr_hash_count(subtree_mergeinfo))
+ if (opt_state->verbose)
{
- apr_array_header_t *sorted_mi;
- int i;
- apr_pool_t *iterpool = svn_pool_create(scratch_pool);
-
- if (parent_mergeinfo)
- SVN_ERR(svn_cmdline_printf(scratch_pool,
- _("\n Sub-tree merge info cannot be elided due to "
- "the following branches:\n")));
- else
- SVN_ERR(svn_cmdline_printf(scratch_pool,
+ if (apr_hash_count(subtree_mergeinfo))
+ {
+ apr_array_header_t *sorted_mi;
+ int i;
+ apr_pool_t *iterpool = svn_pool_create(scratch_pool);
+
+ if (parent_mergeinfo)
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("\n Sub-tree merge info cannot be elided due to "
+ "the following branches:\n")));
+ else
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
_("\n Merge info kept for the following branches:\n")));
- sorted_mi = svn_sort__hash(subtree_mergeinfo,
- svn_sort_compare_items_lexically,
- scratch_pool);
- for (i = 0; i < sorted_mi->nelts; ++i)
+ sorted_mi = svn_sort__hash(subtree_mergeinfo,
+ svn_sort_compare_items_lexically,
+ scratch_pool);
+ for (i = 0; i < sorted_mi->nelts; ++i)
+ {
+ const char *branch = APR_ARRAY_IDX(sorted_mi, i,
+ svn_sort__item_t).key;
+ svn_pool_clear(iterpool);
+ SVN_ERR(svn_cmdline_printf(scratch_pool, _(" %s\n"),
+ branch));
+ }
+
+ SVN_ERR(svn_cmdline_printf(scratch_pool, _("\n")));
+ svn_pool_destroy(iterpool);
+ }
+ else
{
- const char *branch = APR_ARRAY_IDX(sorted_mi, i,
- svn_sort__item_t).key;
- svn_pool_clear(iterpool);
- SVN_ERR(svn_cmdline_printf(scratch_pool, _(" %s\n"), branch));
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("\n All sub-tree mergeinfo has been elided.\n\n")));
}
-
- SVN_ERR(svn_cmdline_printf(scratch_pool, _("\n")));
- svn_pool_destroy(iterpool);
}
- else
+ else if (opt_state->run_analysis)
{
- SVN_ERR(svn_cmdline_printf(scratch_pool,
- _("\n All sub-tree mergeinfo has be elided.\n\n")));
+ if (apr_hash_count(subtree_mergeinfo))
+ {
+ if (parent_mergeinfo)
+ SVN_ERR(svn_cmdline_printf(scratch_pool, _("\n")));
+ else
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _(" Keeping top-level mergeinfo.\n")));
+ }
+ else
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _(" All sub-tree mergeinfo has been elided.\n\n")));
+ }
}
return SVN_NO_ERROR;
@@ -686,7 +713,8 @@ normalize(apr_array_header_t *wc_mergein
opt_state, scratch_pool));
/* Print progress info. */
- if (!opt_state->verbose && !opt_state->quiet && i % 100 == 0)
+ if ( !opt_state->verbose && !opt_state->run_analysis
+ && !opt_state->quiet && i % 100 == 0)
SVN_ERR(svn_cmdline_printf(iterpool, " %s.\n",
progress_string(&progress, opt_state,
iterpool, iterpool)));
Modified: subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h?rev=1689542&r1=1689541&r2=1689542&view=diff
==============================================================================
--- subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h (original)
+++ subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h Tue Jul 7 01:03:47 2015
@@ -66,6 +66,7 @@ typedef struct svn_min__opt_state_t
svn_boolean_t remove_obsoletes;
svn_boolean_t combine_ranges;
svn_boolean_t remove_redundants;
+ svn_boolean_t run_analysis;
/* trust server SSL certs that would otherwise be rejected as "untrusted" */
svn_boolean_t trust_server_cert_unknown_ca;