Author: rinrab
Date: Sun Apr 5 17:31:07 2026
New Revision: 1932858
Log:
svnbrowse: Move client initialization away from the model; it will work with an
already pre-set client and *be* the same layer as the libsvn_client API.
We would like to provide more specific configuration to how our client behaves
based on the information we have only in the command-line parser. Like handling
--username and --password.
* subversion/svnbrowse/model.c
(svn_browse__model_create): Add ctx to parameters, remove client
initialization.
* subversion/svnbrowse/svnbrowse.c
(sub_main): Initialize client and the auth baton.
* subversion/svnbrowse/svnbrowse.h
(svn_browse__model_create): Add ctx to parameters.
Modified:
subversion/trunk/subversion/svnbrowse/model.c
subversion/trunk/subversion/svnbrowse/svnbrowse.c
subversion/trunk/subversion/svnbrowse/svnbrowse.h
Modified: subversion/trunk/subversion/svnbrowse/model.c
==============================================================================
--- subversion/trunk/subversion/svnbrowse/model.c Sun Apr 5 17:02:57
2026 (r1932857)
+++ subversion/trunk/subversion/svnbrowse/model.c Sun Apr 5 17:31:07
2026 (r1932858)
@@ -129,28 +129,19 @@ svn_browse__model_move_selection(svn_bro
svn_error_t *
svn_browse__model_create(svn_browse__model_t **model_p,
+ svn_client_ctx_t *ctx,
const char *url,
svn_revnum_t revision,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
svn_browse__model_t *model = apr_pcalloc(result_pool, sizeof(*model));
- svn_auth_baton_t *auth;
- svn_client_ctx_t *client;
svn_ra_session_t *session;
apr_pool_t *state_pool;
svn_browse__state_t *state;
const char *root, *relpath;
- /* Set up Authentication stuff. */
- SVN_ERR(svn_cmdline_create_auth_baton2(&auth, FALSE, NULL, NULL, NULL, FALSE,
- FALSE, FALSE, FALSE, FALSE, FALSE,
- NULL, NULL, NULL, result_pool));
-
- SVN_ERR(svn_client_create_context2(&client, NULL, result_pool));
- client->auth_baton = auth;
-
- SVN_ERR(svn_client_open_ra_session2(&session, url, NULL, client, result_pool,
+ SVN_ERR(svn_client_open_ra_session2(&session, url, NULL, ctx, result_pool,
scratch_pool));
SVN_ERR(svn_ra_get_repos_root2(session, &root, scratch_pool));
@@ -165,7 +156,7 @@ svn_browse__model_create(svn_browse__mod
model->root = apr_pstrdup(result_pool, root);
model->revision = revision;
- model->client = client;
+ model->client = ctx;
model->session = session;
model->current = state;
model->pool = result_pool;
Modified: subversion/trunk/subversion/svnbrowse/svnbrowse.c
==============================================================================
--- subversion/trunk/subversion/svnbrowse/svnbrowse.c Sun Apr 5 17:02:57
2026 (r1932857)
+++ subversion/trunk/subversion/svnbrowse/svnbrowse.c Sun Apr 5 17:31:07
2026 (r1932858)
@@ -218,6 +218,8 @@ static svn_error_t *
sub_main(int *code, int argc, const char *argv[], apr_pool_t *pool)
{
const char *url;
+ svn_client_ctx_t *client;
+ svn_auth_baton_t *auth;
svn_browse__model_t *ctx;
svn_browse__view_t *view;
svn_browse__opt_state_t opt_state = { 0 };
@@ -327,7 +329,16 @@ sub_main(int *code, int argc, const char
SVN_ERR(svn_config_ensure(opt_state.config_dir, pool));
- SVN_ERR(svn_browse__model_create(&ctx, url, SVN_INVALID_REVNUM, pool, pool));
+ /* Set up Authentication stuff. */
+ SVN_ERR(svn_cmdline_create_auth_baton2(&auth, FALSE, NULL, NULL, NULL, FALSE,
+ FALSE, FALSE, FALSE, FALSE, FALSE,
+ NULL, NULL, NULL, pool));
+
+ SVN_ERR(svn_client_create_context2(&client, NULL, pool));
+ client->auth_baton = auth;
+
+ SVN_ERR(svn_browse__model_create(&ctx, client, url, SVN_INVALID_REVNUM, pool,
+ pool));
/* init the display */
initscr();
Modified: subversion/trunk/subversion/svnbrowse/svnbrowse.h
==============================================================================
--- subversion/trunk/subversion/svnbrowse/svnbrowse.h Sun Apr 5 17:02:57
2026 (r1932857)
+++ subversion/trunk/subversion/svnbrowse/svnbrowse.h Sun Apr 5 17:31:07
2026 (r1932858)
@@ -124,6 +124,7 @@ svn_browse__model_move_selection(svn_bro
svn_error_t *
svn_browse__model_create(svn_browse__model_t **model_p,
+ svn_client_ctx_t *ctx,
const char *url,
svn_revnum_t revision,
apr_pool_t *result_pool,