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

Re: svn commit: r1591301 -/subversion/trunk/subversion/libsvn_client/mergeinfo.c

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Thu, 1 May 2014 12:12:00 +0100 (BST)

Bert Huijben wrote:
> This might make us add svn:mergeinfo on nodes that didn't have this property
> before eliding, while the old code tried to avoid that by checking to see if
> the value was inherited from an ancestor.

Hi Bert. I can't quite parse your sentence unambiguously, but I believe this change has no functional effect.

In the case where this node (at target_abspath) has no explicit mergeinfo, this code said before my change:

  set 'target_mergeinfo' to <inherited mergeinfo, if any found, else null>
  set 'inherited' to <true, if inherited mergeinfo found, else false>
  if (inherited || target_mergeinfo == NULL) return

Therefore it would always return at this point.

Now, in the same case, after my change, the code says:

  set 'target_mergeinfo' to <null>
  if (target_mergeinfo == NULL) return

So, again, it will always return at this point.

The only way this 'target_mergeinfo' value can propagate past that 'if' statement is if it is explicit mergeinfo. That's the case both before and after my change.

- Julian

>URL: http://svn.apache.org/r1591301
>Log:
>* subversion/libsvn_client/mergeinfo.c
>  (svn_client__elide_mergeinfo): A tiny simplification: when we want only
>    explicit mergeinfo, ask for only explicit mergeinfo.
>
>Modified:
>    subversion/trunk/subversion/libsvn_client/mergeinfo.c
>
>Modified: subversion/trunk/subversion/libsvn_client/mergeinfo.c
>==============================================================================
>--- subversion/trunk/subversion/libsvn_client/mergeinfo.c (original)
>+++ subversion/trunk/subversion/libsvn_client/mergeinfo.c Wed Apr 30 14:12:08 2014
>@@ -922,13 +922,12 @@ svn_client__elide_mergeinfo(const char *
>     {
>       svn_mergeinfo_t target_mergeinfo;
>       svn_mergeinfo_t mergeinfo = NULL;
>-      svn_boolean_t inherited;
>       const char *walk_path;
>       svn_error_t *err;
>
>       /* Get the TARGET_WCPATH's explicit mergeinfo. */
>-      err = svn_client__get_wc_mergeinfo(&target_mergeinfo, &inherited,
>-                                         svn_mergeinfo_inherited,
>+      err = svn_client__get_wc_mergeinfo(&target_mergeinfo, NULL,
>+                                         svn_mergeinfo_explicit,
>                                          target_abspath,
>                                          limit_abspath,
>                                          &walk_path, FALSE,
>@@ -951,7 +950,7 @@ svn_client__elide_mergeinfo(const char *
>
>      /* If TARGET_WCPATH has no explicit mergeinfo, there's nothing to
>          elide, we're done. */
>-      if (inherited || target_mergeinfo == NULL)
>+      if (target_mergeinfo == NULL)
>         return SVN_NO_ERROR;
>
>       /* Get TARGET_WCPATH's inherited mergeinfo from the WC. */
Received on 2014-05-01 13:22:03 CEST

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