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

Re: svn commit: r1083805 - /subversion/trunk/subversion/libsvn_wc/update_editor.c

From: Hyrum K Wright <hyrum_at_hyrumwright.org>
Date: Mon, 21 Mar 2011 18:17:47 -0500

On Mon, Mar 21, 2011 at 9:36 AM, <rhuijben_at_apache.org> wrote:
> Author: rhuijben
> Date: Mon Mar 21 14:36:21 2011
> New Revision: 1083805
>
> URL: http://svn.apache.org/viewvc?rev=1083805&view=rev
> Log:
> Following up on storing tree conflicts on the node itself, stop looking
> for conflicts on nodes that don't exist when calling svn_wc__db_read_info().
> This avoids an unnecessary read transaction on every incoming node when
> checking out a working copy. Also remove an unneeded optimization on conflicted
> nodes that reduced the amount of disk stats at the cost of an extra read
> transaction.
>
> * subversion/libsvn_wc/update_editor.c
>  (node_already_conflicted): Just use svn_wc__internal_conflicted_p() for
>    determining if conflicts are still found.
>  (add_file, add_directory): Assume that nodes that don't exist in the database
>    are not conflicted.
>
> Modified:
>    subversion/trunk/subversion/libsvn_wc/update_editor.c
>
> Modified: subversion/trunk/subversion/libsvn_wc/update_editor.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/update_editor.c?rev=1083805&r1=1083804&r2=1083805&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_wc/update_editor.c (original)
> +++ subversion/trunk/subversion/libsvn_wc/update_editor.c Mon Mar 21 14:36:21 2011
> @@ -1896,40 +1896,15 @@ node_already_conflicted(svn_boolean_t *c
>                         const char *local_abspath,
>                         apr_pool_t *scratch_pool)
>  {
> -  const apr_array_header_t *conflicts;
> -  int i;
> -
> -  SVN_ERR(svn_wc__db_read_conflicts(&conflicts, db, local_abspath,
> -                                    scratch_pool, scratch_pool));
> +  svn_boolean_t text_conflicted, prop_conflicted, tree_conflicted;

Should be on separate lines, per style guidelines.

>
> -  *conflicted = FALSE;
> -
> -  for (i = 0; i < conflicts->nelts; i++)
> -    {
> -      const svn_wc_conflict_description2_t *cd;
> -      cd = APR_ARRAY_IDX(conflicts, i, const svn_wc_conflict_description2_t *);
> -
> -      if (cd->kind == svn_wc_conflict_kind_tree)
> -        {
> -          *conflicted = TRUE;
> -          return SVN_NO_ERROR;
> -        }
> -      else if (cd->kind == svn_wc_conflict_kind_property ||
> -               cd->kind == svn_wc_conflict_kind_text)
> -        {
> -          svn_boolean_t text_conflicted, prop_conflicted, tree_conflicted;
> -          SVN_ERR(svn_wc__internal_conflicted_p(&text_conflicted,
> -                                                &prop_conflicted,
> -                                                &tree_conflicted,
> -                                                db, local_abspath,
> -                                                scratch_pool));
> -
> -          *conflicted = (text_conflicted || prop_conflicted
> -                            || tree_conflicted);
> -          return SVN_NO_ERROR;
> -        }
> -    }
> +  SVN_ERR(svn_wc__internal_conflicted_p(&text_conflicted,
> +                                        &prop_conflicted,
> +                                        &tree_conflicted,
> +                                        db, local_abspath,
> +                                        scratch_pool));
>
> +  *conflicted = (text_conflicted || prop_conflicted || tree_conflicted);
>   return SVN_NO_ERROR;
>  }
>
> @@ -2209,7 +2184,7 @@ add_directory(const char *path,
>       svn_error_clear(err);
>       wc_kind = svn_wc__db_kind_unknown;
>       status = svn_wc__db_status_normal;
> -      conflicted = TRUE;  /* TRUE here causes us to check for a conflict */
> +      conflicted = FALSE;
>
>       versioned_locally_and_present = FALSE;
>     }
> @@ -3097,7 +3072,7 @@ add_file(const char *path,
>       svn_error_clear(err);
>       wc_kind = svn_wc__db_kind_unknown;
>       status = svn_wc__db_status_normal;
> -      conflicted = TRUE;  /* TRUE here causes us to check for a conflict */
> +      conflicted = FALSE;
>
>       versioned_locally_and_present = FALSE;
>     }
>
>
>
Received on 2011-03-22 00:18:20 CET

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