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