diff -urN subversion-r1587.org/subversion/mod_dav_svn/log.c subversion-r1587/subversion/mod_dav_svn/log.c --- subversion-r1587.org/subversion/mod_dav_svn/log.c Mon Apr 8 20:08:50 2002 +++ subversion-r1587/subversion/mod_dav_svn/log.c Mon Apr 8 21:40:00 2002 @@ -193,7 +193,8 @@ /* else unknown element; skip it */ } - lrb.bb = apr_brigade_create(resource->pool); /* not the subpool! */ + lrb.bb = apr_brigade_create(resource->pool, /* not the subpool! */ + output->c->bucket_alloc); lrb.output = output; lrb.pool = svn_pool_create(resource->pool); diff -urN subversion-r1587.org/subversion/mod_dav_svn/merge.c subversion-r1587/subversion/mod_dav_svn/merge.c --- subversion-r1587.org/subversion/mod_dav_svn/merge.c Mon Apr 8 20:08:50 2002 +++ subversion-r1587/subversion/mod_dav_svn/merge.c Mon Apr 8 21:40:01 2002 @@ -339,7 +339,7 @@ "previous revision."); } - bb = apr_brigade_create(pool); + bb = apr_brigade_create(pool, output->c->bucket_alloc); /* prep some strings */ diff -urN subversion-r1587.org/subversion/mod_dav_svn/mod_dav_svn.c subversion-r1587/subversion/mod_dav_svn/mod_dav_svn.c --- subversion-r1587.org/subversion/mod_dav_svn/mod_dav_svn.c Mon Apr 8 20:08:50 2002 +++ subversion-r1587/subversion/mod_dav_svn/mod_dav_svn.c Mon Apr 8 21:40:25 2002 @@ -45,7 +45,7 @@ /* per-dir configuration */ typedef struct { const char *fs_path; /* path to the SVN FS */ - + const char *repo_name; /* repository name */ } dav_svn_dir_conf; #define INHERIT_VALUE(parent, child, field) \ @@ -115,10 +115,21 @@ newconf = apr_pcalloc(p, sizeof(*newconf)); newconf->fs_path = INHERIT_VALUE(parent, child, fs_path); + newconf->repo_name = INHERIT_VALUE(parent, child, repo_name); return newconf; } +static const char *dav_svn_repo_name(cmd_parms *cmd, void *config, + const char *arg1) +{ + dav_svn_dir_conf *conf = config; + + conf->repo_name = apr_pstrdup(cmd->pool, arg1); + + return NULL; +} + static const char *dav_svn_path_cmd(cmd_parms *cmd, void *config, const char *arg1) { @@ -171,6 +182,14 @@ return conf->fs_path; } +const char *dav_svn_get_repo_name(request_rec *r) +{ + dav_svn_dir_conf *conf; + + conf = ap_get_module_config(r->per_dir_config, &dav_svn_module); + return conf->repo_name; +} + const char *dav_svn_get_special_uri(request_rec *r) { dav_svn_server_conf *conf; @@ -195,6 +214,10 @@ "specify the URI component for special Subversion " "resources"), + /* per directory/location */ + AP_INIT_TAKE1("SVNReposName", dav_svn_repo_name, NULL, ACCESS_CONF, + "specify the name of a Subversion repository"), + { NULL } }; diff -urN subversion-r1587.org/subversion/mod_dav_svn/repos.c subversion-r1587/subversion/mod_dav_svn/repos.c --- subversion-r1587.org/subversion/mod_dav_svn/repos.c Mon Apr 8 20:08:50 2002 +++ subversion-r1587/subversion/mod_dav_svn/repos.c Mon Apr 8 21:40:02 2002 @@ -835,6 +835,7 @@ dav_resource **resource) { const char *fs_path; + const char *repo_name; dav_resource_combined *comb; dav_svn_repos *repos; apr_size_t len1; @@ -858,6 +859,8 @@ "of this resource's repository."); } + repo_name = dav_svn_get_repo_name(r); + comb = apr_pcalloc(r->pool, sizeof(*comb)); comb->res.info = &comb->priv; comb->res.hooks = &dav_svn_hooks_repos; @@ -949,6 +952,9 @@ /* where is the SVN FS for this resource? */ repos->fs_path = fs_path; + /* A name for the repository */ + repos->repo_name = repo_name; + /* Remember various bits for later URL construction */ repos->base_url = ap_construct_url(r->pool, "", r); repos->special_uri = dav_svn_get_special_uri(r); @@ -1421,8 +1427,8 @@ apr_status_t status; /* take the current data and shove it into the filter */ - bb = apr_brigade_create(dc->pool); - bkt = apr_bucket_transient_create(buffer, *len); + bb = apr_brigade_create(dc->pool, dc->output->c->bucket_alloc); + bkt = apr_bucket_transient_create(buffer, *len, dc->output->c->bucket_alloc); APR_BRIGADE_INSERT_TAIL(bb, bkt); if ((status = ap_pass_brigade(dc->output, bb)) != APR_SUCCESS) { return svn_error_create(status, 0, NULL, dc->pool, @@ -1440,8 +1446,8 @@ apr_status_t status; /* done with the file. write an EOS bucket now. */ - bb = apr_brigade_create(dc->pool); - bkt = apr_bucket_eos_create(); + bb = apr_brigade_create(dc->pool, dc->output->c->bucket_alloc); + bkt = apr_bucket_eos_create(dc->output->c->bucket_alloc); APR_BRIGADE_INSERT_TAIL(bb, bkt); if ((status = ap_pass_brigade(dc->output, bb)) != APR_SUCCESS) { return svn_error_create(status, 0, NULL, dc->pool, @@ -1489,7 +1495,12 @@ title = apr_psprintf(resource->pool, "Revision %ld: %s", resource->info->root.rev, title); - bb = apr_brigade_create(resource->pool); + if (resource->info->repos->repo_name) + title = apr_psprintf(resource->pool, "%s - %s", + resource->info->repos->repo_name, + title); + + bb = apr_brigade_create(resource->pool, output->c->bucket_alloc); ap_fprintf(output, bb, "%s\n" "\n

%s

\n