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:57:27 UTC
svn commit: r1689558 - in
/subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer:
logic.c mergeinfo-normalizer.h missing-branches.c
Author: stefan2
Date: Tue Jul 7 01:57:26 2015
New Revision: 1689558
URL: http://svn.apache.org/r1689558
Log:
On the svn-mergeinfo-normalizer branch:
Add a summary of deleted branches to the 'analyze' output.
* tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
(svn_min__branch_deleted_list): Declare new function.
* tools/client-side/svn-mergeinfo-normalizer/missing-branches.c
(svn_min__branch_deleted_list): Implement it.
* tools/client-side/svn-mergeinfo-normalizer/logic.c
(show_obsoletes_summary): New console output utility.
(svn_min__run_normalize): Call the new function.
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
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/missing-branches.c
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=1689558&r1=1689557&r2=1689558&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:57:26 2015
@@ -766,6 +766,44 @@ processing_title(svn_min__opt_state_t *o
return result->data;
}
+static svn_error_t *
+show_obsoletes_summary(svn_min__branch_lookup_t *lookup,
+ svn_min__opt_state_t *opt_state,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *paths;
+ apr_pool_t *iterpool;
+ int i;
+
+ if (!opt_state->run_analysis || !opt_state->remove_obsoletes)
+ return SVN_NO_ERROR;
+
+ paths = svn_min__branch_deleted_list(lookup, scratch_pool, scratch_pool);
+ if (!paths->nelts)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("\nNo deleted branches were detected.\n\n")));
+ return SVN_NO_ERROR;
+ }
+
+ iterpool = svn_pool_create(scratch_pool);
+
+ SVN_ERR(svn_cmdline_printf(iterpool,
+ _("\nDetected %d deleted branches:\n"),
+ paths->nelts));
+ for (i = 0; i < paths->nelts; ++i)
+ {
+ const char *path = APR_ARRAY_IDX(paths, i, const char *);
+
+ svn_pool_clear(iterpool);
+ SVN_ERR(svn_cmdline_printf(iterpool, _(" %s\n"), path));
+ }
+
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
/* This implements the `svn_opt_subcommand_t' interface. */
svn_error_t *
svn_min__run_normalize(apr_getopt_t *os,
@@ -834,11 +872,14 @@ svn_min__run_normalize(apr_getopt_t *os,
/* write results to disk */
svn_pool_clear(subpool);
- if (cmd_baton->opt_state->dry_run)
- SVN_ERR(svn_min__remove_empty_mergeinfo(wc_mergeinfo));
- else
+ if (!cmd_baton->opt_state->dry_run)
SVN_ERR(svn_min__write_mergeinfo(cmd_baton, wc_mergeinfo, subpool));
+ SVN_ERR(svn_min__remove_empty_mergeinfo(wc_mergeinfo));
+
+ /* Show a summary of deleted branches. */
+ SVN_ERR(show_obsoletes_summary(lookup, cmd_baton->opt_state, iterpool));
+
/* show results */
if (!cmd_baton->opt_state->quiet)
{
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=1689558&r1=1689557&r2=1689558&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:57:26 2015
@@ -197,6 +197,11 @@ svn_min__branch_lookup(svn_boolean_t *de
svn_boolean_t local_only,
apr_pool_t *scratch_pool);
+apr_array_header_t *
+svn_min__branch_deleted_list(svn_min__branch_lookup_t *lookup,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
svn_error_t *
svn_min__run_normalize(apr_getopt_t *os,
void *baton,
Modified: subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/missing-branches.c
URL: http://svn.apache.org/viewvc/subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/missing-branches.c?rev=1689558&r1=1689557&r2=1689558&view=diff
==============================================================================
--- subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/missing-branches.c (original)
+++ subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/missing-branches.c Tue Jul 7 01:57:26 2015
@@ -31,6 +31,7 @@
#include "svn_hash.h"
#include "svn_pools.h"
+#include "private/svn_sorts_private.h"
#include "private/svn_subr_private.h"
#include "mergeinfo-normalizer.h"
@@ -264,3 +265,27 @@ svn_min__branch_lookup(svn_boolean_t *de
scratch_pool));
}
+apr_array_header_t *
+svn_min__branch_deleted_list(svn_min__branch_lookup_t *lookup,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *result = apr_array_make(result_pool,
+ apr_hash_count(lookup->deleted),
+ sizeof(const char *));
+ apr_hash_index_t *hi;
+ for (hi = apr_hash_first(scratch_pool, lookup->deleted);
+ hi;
+ hi = apr_hash_next(hi))
+ {
+ const char *path = apr_hash_this_key(hi);
+ apr_size_t len = apr_hash_this_key_len(hi);
+
+ APR_ARRAY_PUSH(result, const char *) = apr_pstrmemdup(result_pool,
+ path, len);
+ }
+
+ svn_sort__array(result, svn_sort_compare_paths);
+
+ return result;
+}
\ No newline at end of file