pbu...@apache.org wrote on Fri, Jul 01, 2011 at 16:31:22 -0000:
> Author: pburba
> Date: Fri Jul  1 16:31:21 2011
> New Revision: 1141981
> 
> URL: http://svn.apache.org/viewvc?rev=1141981&view=rev
> Log:
> Get svn_ra_get_mergeinfo2 out of the business of communicating server
> capabilities via an in-out parameter and use our standard server capabilities
> mechanism instead.
> 
> * subversion/include/svn_dav.h
> 
>   (SVN_DAV_NS_DAV_SVN_MERGEINFO_VALIDATION): New DAV header.
> 
> * subversion/include/svn_ra.h
> 
>   (svn_ra_get_mergeinfo2): Change the kludgey input-output parameter for
>    inherited mergeinfo validation to an input only parameter that simply
>    requests validation, whether or not the server can do it.
> 
>   (SVN_RA_CAPABILITY_VALIDATE_INHERITED_MERGEINFO): New capability.
> 
> * subversion/include/svn_ra_svn.h
> 
>   (SVN_RA_SVN_CAP_VALIDATE_INHERITED_MERGEINFO): New ra_svn capability map
>    to SVN_RA_CAPABILITY_VALIDATE_INHERITED_MERGEINFO.
> 
> * subversion/libsvn_client/copy.c
> 
>   (calculate_target_mergeinfo): Update call to
>    svn_client__get_repos_mergeinfo().
> 
> * subversion/libsvn_client/merge.c
> 
>   (merge_cmd_baton_t.mergeinfo_validation_capable): New member.
> 
>   (get_invalid_inherited_mergeinfo): Just try to get invalid mergeinfo, let
>    the caller worry about whether the server has the capability or not.
> 
>   (get_full_mergeinfo,
>    inherit_implicit_mergeinfo_from_parent,
>    ensure_implicit_mergeinfo,
>    filter_merged_revisions,
>    calculate_remaining_ranges): Add mergeinfo validation parameter indicating
>    whether to validate inherited mergeinfo or not.
> 
>   (populate_remaining_ranges,
>    do_file_merge): Update calls to get_full_mergeinfo(),
>    ensure_implicit_mergeinfo(), and calculate_remaining_ranges().
> 
>   (do_merge): Initialize new merge_cmd_baton_t member.
> 
>   (find_unmerged_mergeinfo,
>    calculate_left_hand_side): Update call to svn_ra_get_mergeinfo2().
>  
> * subversion/libsvn_client/mergeinfo.h
> 
>   (svn_client__get_repos_mergeinfo,
>    svn_client__get_repos_mergeinfo_catalog): Change the input-output
>    parameter for inherited mergeinfo validation to an input only
>    parameter.
> 
> * subversion/libsvn_client/mergeinfo.c
> 
>   (svn_client__get_repos_mergeinfo,
>    svn_client__get_repos_mergeinfo_catalog): Account for the switch
>    from in-out parameter to in-only parameter.
> 
>   (svn_client__get_wc_or_repos_mergeinfo_catalog): Update call to
>    svn_client__get_repos_mergeinfo_catalog().
> 
>   (get_mergeinfo): Update call to svn_client__get_repos_mergeinfo_catalog().
> 
> * subversion/libsvn_ra/deprecated.c
> 
>   (svn_ra_get_mergeinfo): Update call to svn_ra_get_mergeinfo2().
> 
> * subversion/libsvn_ra/ra_loader.c
> 
>   (svn_ra_get_mergeinfo2): Account for changes to svn_ra_get_mergeinfo2().
> 
> * subversion/libsvn_ra/ra_loader.h
> 
>   (get_mergeinfo): Account for changes to svn_ra_get_mergeinfo2().   
> 
> * subversion/libsvn_ra_local/ra_plugin.c
> 
>   (svn_ra_local__get_mergeinfo): Account for changes to
>    svn_ra_get_mergeinfo2().
> 
>   (svn_ra_local__has_capability): Check for new
>    SVN_RA_CAPABILITY_VALIDATE_INHERITED_MERGEINFO capability.
> 
> * subversion/libsvn_ra_neon/mergeinfo.c
> 
>   (mergeinfo_baton): Remove validated_inherited_mergeinfo member.
> 
>   (mergeinfo_report_elements): Remove ELEM_validate_inherited_mergeinfo
>    element.
> 
>   (start_element): Remove handler for ELEM_validate_inherited_mergeinfo.
> 
>   (svn_ra_neon__get_mergeinfo): Account for changes to
>    svn_ra_get_mergeinfo2().
> 
> * subversion/libsvn_ra_neon/options.c
> 
>   (parse_capabilities): Parse new
>    SVN_RA_CAPABILITY_VALIDATE_INHERITED_MERGEINFO capability.
> 
>   (svn_ra_neon__has_capability): Handle new
>    SVN_RA_CAPABILITY_VALIDATE_INHERITED_MERGEINFO capability.
> 
> * subversion/libsvn_ra_neon/ra_neon.h
> 
>   (svn_ra_neon__get_mergeinfo): Account for changes to
>    svn_ra_get_mergeinfo2().
> 
> * subversion/libsvn_ra_serf/mergeinfo.c
> 
>   (mergeinfo_state_e.MERGEINFO_VALIDATED): Remove.
> 
>   (struct mergeinfo_context_t.validated_inherited_mergeinfo): Remove.
> 
>   (start_element): Don't handle SVN_DAV__VALIDATE_INHERITED, no production
>    server will ever send it.
> 
>   (svn_ra_serf__get_mergeinfo): Account for changes to
>    svn_ra_get_mergeinfo2().
> 
> * subversion/libsvn_ra_serf/options.c
> 
>   (capabilities_headers_iterator_callback): Parse new
>    SVN_RA_CAPABILITY_VALIDATE_INHERITED_MERGEINFO capability.
> 
>   (svn_ra_serf__has_capability): Handle new
>    SVN_RA_CAPABILITY_VALIDATE_INHERITED_MERGEINFO capability.
> 
>   (cdata_handler): Remove handler for defunct
>    mergeinfo_state_e.MERGEINFO_VALIDATED.
> 
> * subversion/libsvn_ra_serf/ra_serf.h
> 
>   (svn_ra_serf__get_mergeinfo): Account for changes to
>    svn_ra_get_mergeinfo2().
> 
> * subversion/libsvn_ra_svn/client.c
> 
>   (ra_svn_get_mergeinfo): Account for changes to svn_ra_get_mergeinfo2().
>    Stop expecting optional response from server that mergeinfo was
>    validated.
> 
>   (ra_svn_has_capability): Handle new
>    SVN_RA_CAPABILITY_VALIDATE_INHERITED_MERGEINFO capability.
> 
> * subversion/mod_dav_svn/reports/mergeinfo.c
> 
>   (dav_svn__get_mergeinfo_report): Stop reporting back to the client if
>    the server validated inherited mergeinfo.
> 
> * subversion/mod_dav_svn/version.c
> 
>   (get_vsn_options): Add SVN_RA_SVN_CAP_VALIDATE_INHERITED_MERGEINFO
>    to reported capabilities list.
> 

Wrong change, you shouldn't use SVN_RA_SVN_* in mod_dav_svn.  (Yes, this
means every capability has several distinct names: an ra_dav wire name,
an ra_svn wire name, and a public API name)

Also, you need to patch libsvn_ra_svn/protocol.

> * subversion/svnserve/serve.c
> 
>   (get_mergeinfo): Stop reporting back to the client if
>    the server validated inherited mergeinfo.
> 
>   (serve): If SVN_RA_SVN_CAP_MERGEINFO is supported, then report
>    SVN_RA_SVN_CAP_VALIDATE_INHERITED_MERGEINFO as well.
> 
> Modified:
>     subversion/trunk/subversion/include/svn_dav.h
>     subversion/trunk/subversion/include/svn_ra.h
>     subversion/trunk/subversion/include/svn_ra_svn.h
>     subversion/trunk/subversion/libsvn_client/copy.c
>     subversion/trunk/subversion/libsvn_client/merge.c
>     subversion/trunk/subversion/libsvn_client/mergeinfo.c
>     subversion/trunk/subversion/libsvn_client/mergeinfo.h
>     subversion/trunk/subversion/libsvn_ra/deprecated.c
>     subversion/trunk/subversion/libsvn_ra/ra_loader.c
>     subversion/trunk/subversion/libsvn_ra/ra_loader.h
>     subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c
>     subversion/trunk/subversion/libsvn_ra_neon/mergeinfo.c
>     subversion/trunk/subversion/libsvn_ra_neon/options.c
>     subversion/trunk/subversion/libsvn_ra_neon/ra_neon.h
>     subversion/trunk/subversion/libsvn_ra_serf/mergeinfo.c
>     subversion/trunk/subversion/libsvn_ra_serf/options.c
>     subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
>     subversion/trunk/subversion/libsvn_ra_svn/client.c
>     subversion/trunk/subversion/mod_dav_svn/reports/mergeinfo.c
>     subversion/trunk/subversion/mod_dav_svn/version.c
>     subversion/trunk/subversion/svnserve/serve.c

Reply via email to