On Fri, Apr 12, 2013 at 02:34:26PM -0400, C. Michael Pilato wrote:
> Daniel, I find the current error display really ... weighty, for lack of a
> better term.  It's difficult to pick out the meat of the message amongst the
> overwhelming amount of repetitive, all-caps symbolic names of error codes.
> 
> Something to consider:  omit the symbolic name from the printed error lines,
> but after the final error stack level is printed, print a mapping of codes
> to names.  So, rather than this:
> 
> subversion/svn/checkout-cmd.c:168: 
> (apr_err=SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED)
> subversion/libsvn_client/checkout.c:197:
> (apr_err=SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED)
> subversion/libsvn_client/checkout.c:100:
> (apr_err=SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED)
> subversion/libsvn_client/ra.c:541: 
> (apr_err=SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED)
> subversion/libsvn_client/ra.c:393: 
> (apr_err=SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED)
> subversion/libsvn_ra/ra_loader.c:482:
> (apr_err=SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED)
> svn: E180001: Unable to connect to a repository at URL
> 'file:///home/cmpilato/tests/arch'
> subversion/libsvn_ra_local/ra_plugin.c:578:
> (apr_err=SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED)
> svn: E180001: Unable to open an ra_local session to URL
> subversion/libsvn_ra_local/split_url.c:46:
> (apr_err=SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED)
> svn: E180001: Unable to open repository 'file:///home/cmpilato/tests/arch'
> 
> Do this:
> 
> subversion/svn/checkout-cmd.c:168 (apr_err=180001)
> subversion/libsvn_client/checkout.c:197 (apr_err=180001)
> subversion/libsvn_client/checkout.c:100 (apr_err=180001)
> subversion/libsvn_client/ra.c:541 (apr_err=180001)
> subversion/libsvn_client/ra.c:393 (apr_err=180001)
> subversion/libsvn_ra/ra_loader.c:482 (apr_err=180001)
> svn: E180001: Unable to connect to a repository at URL
> 'file:///home/cmpilato/tests/arch'
> subversion/libsvn_ra_local/ra_plugin.c:578 (apr_err=180001)
> svn: E180001: Unable to open an ra_local session to URL
> subversion/libsvn_ra_local/split_url.c:46 (apr_err=180001)
> svn: E180001: Unable to open repository 'file:///home/cmpilato/tests/arch'
> (E1800001 = SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED)
> 

Another idea: avoid printing the (apr_err=) part if it's the same code as the
line above it (which should be the common case):

subversion/svn/checkout-cmd.c:168 (apr_err=SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED)
subversion/libsvn_client/checkout.c:197 (apr_err=^)
subversion/libsvn_client/checkout.c:100 (apr_err=^)
subversion/libsvn_client/ra.c:541 (apr_err=^)
subversion/libsvn_client/ra.c:393 (apr_err=^)
subversion/libsvn_ra/ra_loader.c:482 (apr_err=^)
svn: E180001: Unable to connect to a repository at URL 
'file:///home/cmpilato/tests/arch'
subversion/libsvn_ra_local/ra_plugin.c:578 (apr_err=^)
svn: E180001: Unable to open an ra_local session to URL
subversion/libsvn_ra_local/split_url.c:46 (apr_err=SVN_ERR_SOMETHING_ELSE)
svn: E180003: Unable to open repository 'file:///home/cmpilato/tests/arch'

> And in release mode:
> 
> svn: E180003: Unable to connect to a repository at URL
> 'file:///home/cmpilato/tests/arch'
> svn: E180012: Unable to open an ra_local session to URL
> svn: E180001: Unable to open repository 'file:///home/cmpilato/tests/arch'
> (E1800001 = SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED)
> (E1800003 = SVN_ERR_SOMETHING_ELSE)
> (E1800012 = SVN_ERR_YET_ANOTHER_FAILURE)
> 
> Thoughts?

That's an interesting idea.  I don't have a strong opinion on it at the moment.

Reply via email to