[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r25038 - trunk/subversion/libsvn_client

From: Daniel Rall <dlr_at_collab.net>
Date: 2007-05-18 00:13:29 CEST

This is definitely better than a segfault. However, won't this still
prevent the 'merge' operation from completing? Do we want to handle
this specific error in the calling code (with notification back to the
user that merge info couldn't be determined, perhaps)?

On Wed, 16 May 2007, pburba@tigris.org wrote:

> Author: pburba
> Date: Wed May 16 07:48:05 2007
> New Revision: 25038
>
> Log:
> Fix segfault in get_wc_or_repos_merge_info() when merging to missing target.
>
> * subversion/libsvn_client/merge.c
> (get_wc_or_repos_merge_info): Error out when an abbreviated entry for a
> merge target is found, either the target is missing or we have the wrong
> adm access.
>
>
> Modified:
> trunk/subversion/libsvn_client/merge.c
>
> Modified: trunk/subversion/libsvn_client/merge.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_client/merge.c?pathrev=25038&r1=25037&r2=25038
> ==============================================================================
> --- trunk/subversion/libsvn_client/merge.c (original)
> +++ trunk/subversion/libsvn_client/merge.c Wed May 16 07:48:05 2007
> @@ -1030,6 +1030,31 @@
> SVN_ERR(svn_wc__entry_versioned(entry, target_wcpath, adm_access, FALSE,
> pool));
>
> + /* We may get an entry with abrieviated information from TARGET_WCPATH's
> + parent. This limited entry does not have a URL and probably means
> + TARGET_WCPATH is missing or that the access for TARGET_WCPATH is not in
> + ADM_ACCESS's baton set (i.e. ADM_ACCESS was opened for TARGET_WCPATH's
> + parent with lock depth == 0). Either way we can't get accurate merge
> + info for TARGET_WCPATH. */
> + if (! (*entry)->url)
> + {
> + svn_node_kind_t wckind;
> +
> + SVN_ERR(svn_io_check_path(target_wcpath, &wckind, pool));
> + if (wckind == svn_node_none)
> + {
> + return svn_error_createf(SVN_ERR_WC_PATH_NOT_FOUND, NULL,
> + _("Path '%s' is missing"),
> + svn_path_local_style(target_wcpath, pool));
> + }
> + else
> + {
> + return svn_error_createf(SVN_ERR_ENTRY_MISSING_URL, NULL,
> + _("Cannot find a URL for '%s'."),
> + svn_path_local_style(target_wcpath, pool));
> + }
> + }
> +

  • application/pgp-signature attachment: stored
Received on Fri May 18 00:13:41 2007

This is an archived mail posted to the Subversion Dev mailing list.