Checkout
rhuijben
committed
on 20 Jun 13
Improve http status checking in ra_serf, by providing a default error for
unexpected server error, unexpected client error and unexpected mo… Show more
Improve http status checking in ra_serf, by providing a default error for

unexpected server error, unexpected client error and unexpected moved status

values instead of handling all of the unexpected values as SVN_NO_ERROR.

This turns the

[[

In file

  'D:\Development\SVN\Releases\TortoiseSVN-1.8.0\ext\subversion\subversion\libsvn_client\ra.c'

  line 647: assertion failed (peg_revnum != SVN_INVALID_REVNUM)

]]

into the http error that is causing this problem.

Something like:

[[

svn: E175002: DAV request failed: Content length required

]]

* subversion/libsvn_ra_serf/blame.c

 (svn_ra_serf__get_file_revs): Update caller.

* subversion/libsvn_ra_serf/commit.c

 (return_response_err): Update caller.

* subversion/libsvn_ra_serf/getdate.c

 (svn_ra_serf__get_dated_revision): Add status check and verify result to

   make sense.

* subversion/libsvn_ra_serf/getlocations.c

 (svn_ra_serf__get_locations): Update caller.

* subversion/libsvn_ra_serf/getlocationsegments.c

 (svn_ra_serf__get_location_segments): Update caller.

* subversion/libsvn_ra_serf/getlocks.c

 (svn_ra_serf__get_locks): Update caller.

* subversion/libsvn_ra_serf/inherited_props.c

 (svn_ra_serf__get_inherited_props): Update caller.

* subversion/libsvn_ra_serf/log.c

 (svn_ra_serf__get_log): Update caller.

* subversion/libsvn_ra_serf/mergeinfo.c

 (svn_ra_serf__get_mergeinfo): Update caller. Don't drop detailed errors.

* subversion/libsvn_ra_serf/options.c

 (svn_ra_serf__v2_get_youngest_revnum): Update caller. Verify if result

   makes sense.

 (svn_ra_serf__v1_get_activity_collection): Update caller.

 (svn_ra_serf__exchange_capabilities): Update caller.

* subversion/libsvn_ra_serf/property.c

 (svn_ra_serf__wait_for_props): Update caller.

* subversion/libsvn_ra_serf/ra_serf.h

 (svn_ra_serf__error_on_status): Update argument to pass the entire status to

   allow creating better messages for unknown errors.

* subversion/libsvn_ra_serf/replay.c

 (svn_ra_serf__replay): Update caller.

 (svn_ra_serf__replay_range): Update caller.

* subversion/libsvn_ra_serf/update.c

 (handle_stream): Update caller.

 (finish_report): Update caller.

* subversion/libsvn_ra_serf/util.c

 (svn_ra_serf__error_on_status): Extend arguments. Provide specialized error

   for http status 411 and a generic error for all currently unexpected

   errors.

Show less