Author: hwright
Date: Thu May 27 18:41:16 2010
New Revision: 948942
URL: http://svn.apache.org/viewvc?rev=948942&view=rev
Log:
Don't use a couple of deprecated repos APIs from svnadmin.
* subversion/svnadmin/main.c
(progress_baton, repos_progress_handler): New, largely stolen from
libsvn_repos/deprecated.c.
(subcommand_dump): Use the new progress handler to update to
svn_repos_dump_fs3().
(subcommand_verify): Use the new progress handler to update to
svn_repos_verify_fs2().
Modified:
subversion/trunk/subversion/svnadmin/main.c
Modified: subversion/trunk/subversion/svnadmin/main.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/svnadmin/main.c?rev=948942&r1=948941&r2=948942&view=diff
==============================================================================
--- subversion/trunk/subversion/svnadmin/main.c (original)
+++ subversion/trunk/subversion/svnadmin/main.c Thu May 27 18:41:16 2010
@@ -650,6 +650,38 @@ subcommand_deltify(apr_getopt_t *os, voi
}
+/* Baton for repos_progress_handler */
+struct progress_baton
+{
+ svn_boolean_t dumping;
+ svn_stream_t *progress_stream;
+};
+
+/* Implementation of svn_repos_progress_func_t to wrap the output to a
+ response stream for svn_repos_dump_fs2() and svn_repos_verify_fs() */
+static svn_error_t *
+repos_progress_handler(void * baton,
+ svn_revnum_t revision,
+ const char *warning_text,
+ apr_pool_t *scratch_pool)
+{
+ struct progress_baton *pb = baton;
+
+ if (warning_text != NULL)
+ {
+ apr_size_t len = strlen(warning_text);
+ return svn_error_return(svn_stream_write(pb->progress_stream,
+ warning_text, &len));
+ }
+
+ return svn_error_return(svn_stream_printf(pb->progress_stream, scratch_pool,
+ pb->dumping
+ ? _("* Dumped revision %ld.\n")
+ : _("* Verified revision %ld.\n"),
+ revision));
+}
+
+
/* Baton for recode_write(). */
struct recode_write_baton
{
@@ -697,9 +729,10 @@ subcommand_dump(apr_getopt_t *os, void *
struct svnadmin_opt_state *opt_state = baton;
svn_repos_t *repos;
svn_fs_t *fs;
- svn_stream_t *stdout_stream, *stderr_stream = NULL;
+ svn_stream_t *stdout_stream;
svn_revnum_t lower = SVN_INVALID_REVNUM, upper = SVN_INVALID_REVNUM;
svn_revnum_t youngest;
+ struct progress_baton pb = { 0 };
SVN_ERR(open_repos(&repos, opt_state->repository_path, pool));
fs = svn_repos_fs(repos);
@@ -731,12 +764,14 @@ subcommand_dump(apr_getopt_t *os, void *
/* Progress feedback goes to STDERR, unless they asked to suppress it. */
if (! opt_state->quiet)
- stderr_stream = recode_stream_create(stderr, pool);
+ pb.progress_stream = recode_stream_create(stderr, pool);
- SVN_ERR(svn_repos_dump_fs2(repos, stdout_stream, stderr_stream,
- lower, upper, opt_state->incremental,
- opt_state->use_deltas, check_cancel, NULL,
- pool));
+ pb.dumping = TRUE;
+ SVN_ERR(svn_repos_dump_fs3(repos, stdout_stream, lower, upper,
+ opt_state->incremental, opt_state->use_deltas,
+ !opt_state->quiet ? repos_progress_handler : NULL,
+ !opt_state->quiet ? &pb : NULL,
+ check_cancel, NULL, pool));
return SVN_NO_ERROR;
}
@@ -1185,10 +1220,10 @@ static svn_error_t *
subcommand_verify(apr_getopt_t *os, void *baton, apr_pool_t *pool)
{
struct svnadmin_opt_state *opt_state = baton;
- svn_stream_t *stderr_stream;
svn_repos_t *repos;
svn_fs_t *fs;
svn_revnum_t youngest, lower, upper;
+ struct progress_baton pb = { 0 };
SVN_ERR(open_repos(&repos, opt_state->repository_path, pool));
fs = svn_repos_fs(repos);
@@ -1205,13 +1240,14 @@ subcommand_verify(apr_getopt_t *os, void
upper = lower;
}
- if (opt_state->quiet)
- stderr_stream = NULL;
- else
- stderr_stream = recode_stream_create(stderr, pool);
+ if (! opt_state->quiet)
+ pb.progress_stream = recode_stream_create(stderr, pool);
- return svn_repos_verify_fs(repos, stderr_stream, lower, upper,
- check_cancel, NULL, pool);
+ return svn_repos_verify_fs2(repos, lower, upper,
+ !opt_state->quiet
+ ? repos_progress_handler : NULL,
+ !opt_state->quiet ? &pb : NULL,
+ check_cancel, NULL, pool);
}