summaryrefslogtreecommitdiff
path: root/subversion/svn/checkout-cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/svn/checkout-cmd.c')
-rw-r--r--subversion/svn/checkout-cmd.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/subversion/svn/checkout-cmd.c b/subversion/svn/checkout-cmd.c
index 6c192a0..56fd02b 100644
--- a/subversion/svn/checkout-cmd.c
+++ b/subversion/svn/checkout-cmd.c
@@ -72,6 +72,7 @@ svn_cl__checkout(apr_getopt_t *os,
svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
apr_pool_t *subpool;
apr_array_header_t *targets;
+ struct svn_cl__check_externals_failed_notify_baton nwb;
const char *last_target, *local_dir;
int i;
@@ -113,6 +114,12 @@ svn_cl__checkout(apr_getopt_t *os,
if (! opt_state->quiet)
SVN_ERR(svn_cl__notifier_mark_checkout(ctx->notify_baton2));
+ nwb.wrapped_func = ctx->notify_func2;
+ nwb.wrapped_baton = ctx->notify_baton2;
+ nwb.had_externals_error = FALSE;
+ ctx->notify_func2 = svn_cl__check_externals_failed_notify_wrapper;
+ ctx->notify_baton2 = &nwb;
+
subpool = svn_pool_create(pool);
for (i = 0; i < targets->nelts; ++i)
{
@@ -169,5 +176,10 @@ svn_cl__checkout(apr_getopt_t *os,
}
svn_pool_destroy(subpool);
+ if (nwb.had_externals_error)
+ return svn_error_create(SVN_ERR_CL_ERROR_PROCESSING_EXTERNALS, NULL,
+ _("Failure occurred processing one or "
+ "more externals definitions"));
+
return SVN_NO_ERROR;
}