Você pode personalizar textos / documentos de erros com o Apache ( link ), mas isso não te ajude aqui.
As mensagens de erro são incorporadas na fonte do cliente ( subversion/libsvn_ra_serf/util.c
):
svn_ra_serf__error_on_status(serf_status_line sline,
const char *path,
const char *location)
{
switch(sline.code)
{
case 301:
case 302:
case 307:
return svn_error_createf(SVN_ERR_RA_DAV_RELOCATED, NULL,
(sline.code == 301)
? _("Repository moved permanently to '%s';"
" please relocate")
: _("Repository moved temporarily to '%s';"
" please relocate"), location);
case 403:
return svn_error_createf(SVN_ERR_RA_DAV_FORBIDDEN, NULL,
_("Access to '%s' forbidden"), path);
Sem olhar, suspeito que os outros clientes (SmartSVN, Tortoise) usam as mesmas ou muito semelhantes bibliotecas de HTTP, então você terá o mesmo problema: não há facilidade para rotear mensagens de erro personalizadas do servidor para o cliente quando o cliente é negado por falha de senha ou autenticação.
No entanto, se isso é algo que você realmente precisa, talvez seja possível especificar o caminho necessário no pre-commit
hook, já que quando existe um script de gancho com um status diferente de zero, o conteúdo de stdout
são realimentados para o usuário e você pode fazer com que ele diga o que quiser.
O problema é que a solicitação teria que ser autenticada primeiro, portanto, uma solução como essa provavelmente seria interrompida em seu modelo de permissão, a menos que fosse para um caso único muito específico. (Você sempre pode personalizar o cliente, mas eu suspeito que é mais longe do que você estaria disposto a ir para isso)