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

Re: svn commit: r32265 - branches/issue-2843-dev/subversion/libsvn_wc

From: Karl Fogel <kfogel_at_red-bean.com>
Date: Sun, 17 Aug 2008 09:59:26 -0400

firemeteor_at_tigris.org writes:
> Log:
> On the issue-2843-dev branch.
>
> Fix a problem when trying to pull in an excluded target while it is actually
> gone in the repos.
>
> * subveraion/libsvn_wc/update_editor.c
> (complete_directory): Remove the target if it is both excluded locally and
> removed in repos.
>
> --- branches/issue-2843-dev/subversion/libsvn_wc/update_editor.c
> +++ branches/issue-2843-dev/subversion/libsvn_wc/update_editor.c
> @@ -450,6 +450,13 @@ make_dir_baton(struct dir_baton **d_p,
> }
>
>
> +/* Forward declaration. */
> +static svn_error_t *
> +do_entry_deletion(struct edit_baton *eb,
> + const char *parent_path,
> + const char *path,
> + int *log_number,
> + apr_pool_t *pool);

Is this forward declaration really necessary? Why not just put
the definition of do_entry_deletion() here instead? (I looked at its
body, and didn't see any circular dependencies that would require a
forward declaration... Was it the call to leftmod_error_chain() you were
worried about?)

> @@ -481,6 +488,7 @@ complete_directory(struct edit_baton *eb
> in. */
> if (eb->depth_is_sticky || *eb->target)
> {
> + svn_wc_adm_access_t *target_access;
> SVN_ERR(svn_wc_adm_retrieve(&adm_access,
> eb->adm_access, path, pool));
> SVN_ERR(svn_wc_entries_read(&entries, adm_access, TRUE, pool));
> @@ -489,6 +497,16 @@ complete_directory(struct edit_baton *eb
> {
> entry->depth = svn_depth_infinity;
> SVN_ERR(svn_wc__entries_write(entries, adm_access, pool));
> + /* There is a small chance that the target is gone in the
> + repository. We'd better get rid of the exclude flag now. */
> + SVN_ERR(svn_wc__adm_retrieve_internal
> + (&target_access, eb->adm_access, eb->target, pool));
> + if (!target_access)
> + {
> + int log_number = 0;
> + SVN_ERR(do_entry_deletion(eb, eb->anchor, eb->target,
> + &log_number, pool));
> + }

I clarified this comment a bit in r32511.

-Karl

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-08-17 15:59:53 CEST

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