Re. this suggestion to issue a warning:
> #if (SVN_VER_MAJOR > 1 || SVN_VER_MINOR >= 16)
>     hard_error();
> #else
>     warning();
> #endif
(in which I assume you meant MINOR >= 15)...

Meh.  This is library code.  We can't just issue a warning in-line.  We don't 
have a generic warning callback.  We can't add new notifications to the 
notifications system in a patch release.

To add warnings in a patch release we can do so at the application layer.  That 
involves some code duplication but not much.  It does require opening RA 
sessions to the two or three repository URLs -- or, with sufficient logic, at 
least one of them plus any others that are not trivially pointing to the same 
repository.  These opened RA sessions cannot be passed through the public API 
into the merge APIs; they will open new sessions.  I cannot remember how much 
caching of sessions our session-opening layer might do, and haven't yet 
measured it, so I am not yet sure of the impact.

I will continue looking into the impact of adding warnings this way.  If the 
run-time cost is effectively zero due to session caching that's fine.  If not, 
I'm wondering if it's worth it.  An alternative is to leave 1.14.x unpatched -- 
no warning, no error.  We could still make those errors in 1.15.0, with no 
pre-warning.

If anyone wants to comment or suggest alternatives while I look into it, please 
do.

-- 
- Julian

Reply via email to