You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2015/07/03 21:57:56 UTC

svn commit: r1689076 - in /subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer: analyze-cmd.c logic.c mergeinfo-normalizer.h wc_mergeinfo.c

Author: stefan2
Date: Fri Jul  3 19:57:56 2015
New Revision: 1689076

URL: http://svn.apache.org/r1689076
Log:
On the svn-mergeinfo-normalizer branch:
Minor refactoring removing redundant access to mergeinfo.

* tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
  (svn_min__get_mergeinfo_pair): Rename to ...
  (svn_min__get_parent_mergeinfo): ... this and don't return the sub-tree
                                   mergeinfo anymore.

* tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c
  (svn_min__get_mergeinfo_pair,
   svn_min__get_parent_mergeinfo): Update implementation.

* tools/client-side/svn-mergeinfo-normalizer/analyze-cmd.c
  (analyze): Update caller. Assign the sub-tree mergeinfo only once.

* tools/client-side/svn-mergeinfo-normalizer/logic.c
  (normalize): Update caller.

Modified:
    subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/analyze-cmd.c
    subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/logic.c
    subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
    subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c

Modified: subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/analyze-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/analyze-cmd.c?rev=1689076&r1=1689075&r2=1689076&view=diff
==============================================================================
--- subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/analyze-cmd.c (original)
+++ subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/analyze-cmd.c Fri Jul  3 19:57:56 2015
@@ -295,9 +295,9 @@ analyze(svn_ra_session_t *session,
       svn_mergeinfo_t subtree_mergeinfo;
       svn_mergeinfo_t obsolete;
 
-      if (svn_min__get_mergeinfo_pair(&parent_path, &relpath,
-                                      &parent_mergeinfo, &subtree_mergeinfo,
-                                      wc_mergeinfo, i))
+      subtree_mergeinfo = svn_min__get_mergeinfo(wc_mergeinfo, i);
+      if (svn_min__get_parent_mergeinfo(&parent_path, &relpath,
+                                        &parent_mergeinfo, wc_mergeinfo, i))
         {
           SVN_ERR(svn_cmdline_printf(iterpool,
                                      _("Trying to elide mergeinfo from path\n"

Modified: subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/logic.c
URL: http://svn.apache.org/viewvc/subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/logic.c?rev=1689076&r1=1689075&r2=1689076&view=diff
==============================================================================
--- subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/logic.c (original)
+++ subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/logic.c Fri Jul  3 19:57:56 2015
@@ -314,15 +314,14 @@ normalize(apr_array_header_t *wc_mergein
       progress.nodes_todo = i;
 
       /* Quickly eliminate entries for known deleted branches. */
-      SVN_ERR(remove_obsolete_lines(lookup,
-                                    svn_min__get_mergeinfo(wc_mergeinfo, i),
-                                    opt_state, &progress, TRUE, iterpool));
+      subtree_mergeinfo = svn_min__get_mergeinfo(wc_mergeinfo, i);
+      SVN_ERR(remove_obsolete_lines(lookup, subtree_mergeinfo, opt_state,
+                                    &progress, TRUE, iterpool));
 
       /* Eliminate redundant sub-node mergeinfo. */
       if (opt_state->remove_redundants &&
-          svn_min__get_mergeinfo_pair(&parent_path, &relpath,
-                                      &parent_mergeinfo, &subtree_mergeinfo,
-                                      wc_mergeinfo, i))
+          svn_min__get_parent_mergeinfo(&parent_path, &relpath,
+                                        &parent_mergeinfo, wc_mergeinfo, i))
         {
           svn_mergeinfo_t parent_mergeinfo_copy;
           svn_mergeinfo_t subtree_mergeinfo_copy;
@@ -333,6 +332,7 @@ normalize(apr_array_header_t *wc_mergein
                                         opt_state, &progress, TRUE,
                                         iterpool));
 
+          /* Try to elide the mergeinfo for all branches. */
           parent_mergeinfo_copy = svn_mergeinfo_dup(parent_mergeinfo,
                                                     iterpool);
           subtree_mergeinfo_copy = svn_mergeinfo_dup(subtree_mergeinfo,
@@ -365,13 +365,12 @@ normalize(apr_array_header_t *wc_mergein
          Even then, we almost certainly already cached the necessary info
          in LOOKUP.  Still, because this is the final reduction for this
          node, we allow repository lookups if need be. */
-      SVN_ERR(remove_obsolete_lines(lookup,
-                                    svn_min__get_mergeinfo(wc_mergeinfo, i),
-                                    opt_state, &progress, FALSE, iterpool));
+      SVN_ERR(remove_obsolete_lines(lookup, subtree_mergeinfo, opt_state,
+                                    &progress, FALSE, iterpool));
 
       /* Reduce the number of remaining ranges. */
-      SVN_ERR(shorten_lines(svn_min__get_mergeinfo(wc_mergeinfo, i), log,
-                            opt_state, &progress, iterpool));
+      SVN_ERR(shorten_lines(subtree_mergeinfo, log, opt_state, &progress,
+                            iterpool));
 
       /* Print progress info. */
       if (!opt_state->quiet && i % 100 == 0)

Modified: subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h?rev=1689076&r1=1689075&r2=1689076&view=diff
==============================================================================
--- subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h (original)
+++ subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h Fri Jul  3 19:57:56 2015
@@ -137,12 +137,11 @@ svn_min__get_mergeinfo_path(apr_array_he
                             int idx);
 
 svn_boolean_t
-svn_min__get_mergeinfo_pair(const char **parent_path,
-                            const char **subtree_relpath,
-                            svn_mergeinfo_t *parent_mergeinfo,
-                            svn_mergeinfo_t *subtree_mergeinfo,
-                            apr_array_header_t *mergeinfo,
-                            int idx);
+svn_min__get_parent_mergeinfo(const char **parent_path,
+                              const char **subtree_relpath,
+                              svn_mergeinfo_t *parent_mergeinfo,
+                              apr_array_header_t *mergeinfo,
+                              int idx);
 
 svn_error_t *
 svn_min__write_mergeinfo(svn_min__cmd_baton_t *baton,

Modified: subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c?rev=1689076&r1=1689075&r2=1689076&view=diff
==============================================================================
--- subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c (original)
+++ subversion/branches/svn-mergeinfo-normalizer/tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c Fri Jul  3 19:57:56 2015
@@ -235,12 +235,11 @@ svn_min__common_parent(apr_array_header_
 }
 
 svn_boolean_t
-svn_min__get_mergeinfo_pair(const char **parent_path,
-                            const char **subtree_relpath,
-                            svn_mergeinfo_t *parent_mergeinfo,
-                            svn_mergeinfo_t *subtree_mergeinfo,
-                            apr_array_header_t *mergeinfo,
-                            int idx)
+svn_min__get_parent_mergeinfo(const char **parent_path,
+                              const char **subtree_relpath,
+                              svn_mergeinfo_t *parent_mergeinfo,
+                              apr_array_header_t *mergeinfo,
+                              int idx)
 {
   mergeinfo_t *entry;
   if (idx < 0 || mergeinfo->nelts <= idx)
@@ -254,7 +253,6 @@ svn_min__get_mergeinfo_pair(const char *
   *subtree_relpath = svn_dirent_skip_ancestor(entry->parent->local_path,
                                               entry->local_path);
   *parent_mergeinfo = entry->parent->mergeinfo;
-  *subtree_mergeinfo = entry->mergeinfo;
 
   return TRUE;
 }