Author: stefan2
Date: Mon Jun 29 23:33:00 2015
New Revision: 1688329
URL: http://svn.apache.org/r1688329
Log:
On the svn-mergeinfo-normalizer branch:
Add progress information and post-op stats to all 3 modifying
sub-commands.
* tools/client-side/svn-mergeinfo-normalizer/clear-obsolete-cmd.c
(remove_obsoletes): Show progress.
(svn_min__clear_obsolete): Show post-process stats.
* tools/client-side/svn-mergeinfo-normalizer/combine-ranges-cmd.c
(shorten_lines): Show progress.
(svn_min__combine_ranges): Show post-process stats.
* tools/client-side/svn-mergeinfo-normalizer/normalize-cmd.c
(normalize): Show progress.
(svn_min__normalize): Show post-process stats.
Modified:
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/clear-obsolete-cmd.c
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/combine-ranges-cmd.c
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/normalize-cmd.c
Modified:
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/clear-obsolete-cmd.c
URL:
http://svn.apache.org/viewvc/subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/clear-obsolete-cmd.c?rev=1688329&r1=1688328&r2=1688329&view=diff
==============================================================================
---
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/clear-obsolete-cmd.c
(original)
+++
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/clear-obsolete-cmd.c
Mon Jun 29 23:33:00 2015
@@ -27,6 +27,7 @@
/*** Includes. ***/
+#include "svn_cmdline.h"
#include "svn_dirent_uri.h"
#include "svn_hash.h"
#include "svn_path.h"
@@ -77,18 +78,29 @@ remove_obsolete_lines(svn_ra_session_t *
static svn_error_t *
remove_obsoletes(apr_array_header_t *wc_mergeinfo,
svn_ra_session_t *session,
+ svn_boolean_t quiet,
apr_pool_t *scratch_pool)
{
apr_pool_t *iterpool = svn_pool_create(scratch_pool);
int i;
+ apr_int64_t removed = 0;
for (i = 0; i < wc_mergeinfo->nelts; ++i)
{
svn_mergeinfo_t mergeinfo = svn_min__get_mergeinfo(wc_mergeinfo, i);
+ unsigned initial_count = apr_hash_count(mergeinfo);
svn_pool_clear(iterpool);
/* Combine mergeinfo ranges */
SVN_ERR(remove_obsolete_lines(session, mergeinfo, iterpool));
+ removed += initial_count - apr_hash_count(mergeinfo);
+
+ /* Show progress after every 1000 nodes and after the last one. */
+ if (!quiet && ((i+1) % 1000 == 0 || (i+1) == wc_mergeinfo->nelts))
+ SVN_ERR(svn_cmdline_printf(iterpool,
+ _(" Processed %d nodes, removed %s branch entries.\n"),
+ i+1,
+ apr_psprintf(iterpool, "%" APR_UINT64_T_FMT, removed)));
}
svn_pool_destroy(iterpool);
@@ -125,12 +137,24 @@ svn_min__clear_obsolete(apr_getopt_t *os
/* actual normalization */
svn_pool_clear(subpool);
- SVN_ERR(remove_obsoletes(wc_mergeinfo, session, subpool));
+ if (!cmd_baton->opt_state->quiet)
+ SVN_ERR(svn_cmdline_printf(subpool,
+ _("Remove obsoletes ...\n")));
+
+ SVN_ERR(remove_obsoletes(wc_mergeinfo, session,
+ cmd_baton->opt_state->quiet, subpool));
/* write results to disk */
svn_pool_clear(subpool);
if (!cmd_baton->opt_state->dry_run)
SVN_ERR(svn_min__write_mergeinfo(cmd_baton, wc_mergeinfo, subpool));
+
+ /* show results */
+ if (!cmd_baton->opt_state->quiet)
+ {
+ SVN_ERR(svn_cmdline_printf(subpool, _("\nRemaining mergeinfo:\n")));
+ SVN_ERR(svn_min__print_mergeinfo_stats(wc_mergeinfo, subpool));
+ }
}
svn_pool_destroy(subpool);
Modified:
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/combine-ranges-cmd.c
URL:
http://svn.apache.org/viewvc/subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/combine-ranges-cmd.c?rev=1688329&r1=1688328&r2=1688329&view=diff
==============================================================================
---
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/combine-ranges-cmd.c
(original)
+++
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/combine-ranges-cmd.c
Mon Jun 29 23:33:00 2015
@@ -28,6 +28,7 @@
/*** Includes. ***/
+#include "svn_cmdline.h"
#include "svn_dirent_uri.h"
#include "svn_hash.h"
#include "svn_path.h"
@@ -77,12 +78,14 @@ inoperative(svn_min__log_t *log,
static svn_error_t *
shorten_lines(apr_array_header_t *wc_mergeinfo,
svn_min__log_t *log,
+ svn_boolean_t quiet,
apr_pool_t *scratch_pool)
{
apr_pool_t *iterpool = svn_pool_create(scratch_pool);
apr_pool_t *iterpool2 = svn_pool_create(scratch_pool);
int i;
+ apr_int64_t removed = 0;
for (i = 0; i < wc_mergeinfo->nelts; ++i)
{
apr_hash_index_t *hi;
@@ -124,8 +127,16 @@ shorten_lines(apr_array_header_t *wc_mer
}
}
+ removed += ranges->nelts - dest - 1;
ranges->nelts = dest + 1;
}
+
+ /* Show progress after every 1000 nodes and after the last one. */
+ if (!quiet && ((i+1) % 1000 == 0 || (i+1) == wc_mergeinfo->nelts))
+ SVN_ERR(svn_cmdline_printf(iterpool,
+ _(" Processed %d nodes, removed %s revision ranges.\n"),
+ i+1,
+ apr_psprintf(iterpool, "%" APR_UINT64_T_FMT, removed)));
}
svn_pool_destroy(iterpool2);
@@ -175,12 +186,24 @@ svn_min__combine_ranges(apr_getopt_t *os
/* actual normalization */
svn_pool_clear(subpool);
- SVN_ERR(shorten_lines(wc_mergeinfo, log, subpool));
+ if (!cmd_baton->opt_state->quiet)
+ SVN_ERR(svn_cmdline_printf(subpool,
+ _("Combine revision ranges ...\n")));
+
+ SVN_ERR(shorten_lines(wc_mergeinfo, log, cmd_baton->opt_state->quiet,
+ subpool));
/* write results to disk */
svn_pool_clear(subpool);
if (!cmd_baton->opt_state->dry_run)
SVN_ERR(svn_min__write_mergeinfo(cmd_baton, wc_mergeinfo, subpool));
+
+ /* show results */
+ if (!cmd_baton->opt_state->quiet)
+ {
+ SVN_ERR(svn_cmdline_printf(subpool, _("\nRemaining mergeinfo:\n")));
+ SVN_ERR(svn_min__print_mergeinfo_stats(wc_mergeinfo, subpool));
+ }
}
svn_pool_destroy(subpool);
Modified:
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/normalize-cmd.c
URL:
http://svn.apache.org/viewvc/subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/normalize-cmd.c?rev=1688329&r1=1688328&r2=1688329&view=diff
==============================================================================
---
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/normalize-cmd.c
(original)
+++
subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/normalize-cmd.c
Mon Jun 29 23:33:00 2015
@@ -27,6 +27,7 @@
/*** Includes. ***/
+#include "svn_cmdline.h"
#include "svn_dirent_uri.h"
#include "svn_hash.h"
#include "svn_path.h"
@@ -120,11 +121,13 @@ remove_lines(svn_min__log_t *log,
static svn_error_t *
normalize(apr_array_header_t *wc_mergeinfo,
svn_min__log_t *log,
+ svn_boolean_t quiet,
apr_pool_t *scratch_pool)
{
apr_pool_t *iterpool = svn_pool_create(scratch_pool);
int i;
+ int deleted = 0;
for (i = wc_mergeinfo->nelts - 1; i >= 0; --i)
{
const char *parent_path;
@@ -155,8 +158,14 @@ normalize(apr_array_header_t *wc_mergein
apr_hash_pool_get(parent_mergeinfo),
iterpool));
apr_hash_clear(subtree_mergeinfo);
+ ++deleted;
}
}
+
+ if (!quiet && i % 1000 == 0)
+ SVN_ERR(svn_cmdline_printf(iterpool,
+ _(" Processed %d nodes, eliminated mergeinfo on %d.\n"),
+ wc_mergeinfo->nelts - i, deleted));
}
svn_pool_destroy(iterpool);
@@ -205,12 +214,24 @@ svn_min__normalize(apr_getopt_t *os,
/* actual normalization */
svn_pool_clear(subpool);
- SVN_ERR(normalize(wc_mergeinfo, log, subpool));
+ if (!cmd_baton->opt_state->quiet)
+ SVN_ERR(svn_cmdline_printf(subpool,
+ _("Normalizing mergeinfo ...\n")));
+
+ SVN_ERR(normalize(wc_mergeinfo, log, cmd_baton->opt_state->quiet,
+ subpool));
/* write results to disk */
svn_pool_clear(subpool);
if (!cmd_baton->opt_state->dry_run)
SVN_ERR(svn_min__write_mergeinfo(cmd_baton, wc_mergeinfo, subpool));
+
+ /* show results */
+ if (!cmd_baton->opt_state->quiet)
+ {
+ SVN_ERR(svn_cmdline_printf(subpool, _("\nRemaining mergeinfo:\n")));
+ SVN_ERR(svn_min__print_mergeinfo_stats(wc_mergeinfo, subpool));
+ }
}
svn_pool_destroy(subpool);