You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/01/25 18:06:58 UTC

svn commit: r1063360 - in /subversion/branches/ignore-mergeinfo-log/subversion: include/svn_repos.h libsvn_repos/deprecated.c libsvn_repos/log.c

Author: hwright
Date: Tue Jan 25 17:06:57 2011
New Revision: 1063360

URL: http://svn.apache.org/viewvc?rev=1063360&view=rev
Log:
On the ignore-mergeinfo-log branch:
Rev the svn_repos_get_log4() interface to add an ignore_mergeinfo flag, but
don't actually use it (beyond some sanity checking).

* subversion/include/svn_repos.h
  (svn_repos_get_logs5): New.
  (svn_repos_get_logs4): Deprecate.

* subversion/libsvn_repos/deprecated.c
  (svn_repos_get_logs4): New wrapper.

* subversion/libsvn_repos/log.c
  (svn_repos_get_logs5): New, largely copied from svn_repos_get_logs4().
    Do some parameter state checking as well.

Modified:
    subversion/branches/ignore-mergeinfo-log/subversion/include/svn_repos.h
    subversion/branches/ignore-mergeinfo-log/subversion/libsvn_repos/deprecated.c
    subversion/branches/ignore-mergeinfo-log/subversion/libsvn_repos/log.c

Modified: subversion/branches/ignore-mergeinfo-log/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/include/svn_repos.h?rev=1063360&r1=1063359&r2=1063360&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/include/svn_repos.h (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/include/svn_repos.h Tue Jan 25 17:06:57 2011
@@ -1623,6 +1623,31 @@ svn_repos_node_location_segments(svn_rep
  * @since New in 1.5.
  */
 svn_error_t *
+svn_repos_get_logs5(svn_repos_t *repos,
+                    const apr_array_header_t *paths,
+                    svn_revnum_t start,
+                    svn_revnum_t end,
+                    int limit,
+                    svn_boolean_t discover_changed_paths,
+                    svn_boolean_t strict_node_history,
+                    svn_boolean_t include_merged_revisions,
+                    svn_boolean_t ignore_mergeinfo,
+                    const apr_array_header_t *revprops,
+                    svn_repos_authz_func_t authz_read_func,
+                    void *authz_read_baton,
+                    svn_log_entry_receiver_t receiver,
+                    void *receiver_baton,
+                    apr_pool_t *pool);
+
+/**
+ * Similar to svn_repos_get_logs5(), but with @a ignore_mergeinfo set to
+ * @c FALSE.
+ *
+ * @since New in 1.5.
+ * @deprecated Provided for backward compatibility with the 1.6 API.
+ */
+SVN_DEPRECATED
+svn_error_t *
 svn_repos_get_logs4(svn_repos_t *repos,
                     const apr_array_header_t *paths,
                     svn_revnum_t start,

Modified: subversion/branches/ignore-mergeinfo-log/subversion/libsvn_repos/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/libsvn_repos/deprecated.c?rev=1063360&r1=1063359&r2=1063360&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/libsvn_repos/deprecated.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/libsvn_repos/deprecated.c Tue Jan 25 17:06:57 2011
@@ -428,6 +428,29 @@ svn_repos_fs_get_locks(apr_hash_t **lock
 
 /*** From logs.c ***/
 svn_error_t *
+svn_repos_get_logs4(svn_repos_t *repos,
+                    const apr_array_header_t *paths,
+                    svn_revnum_t start,
+                    svn_revnum_t end,
+                    int limit,
+                    svn_boolean_t discover_changed_paths,
+                    svn_boolean_t strict_node_history,
+                    svn_boolean_t include_merged_revisions,
+                    const apr_array_header_t *revprops,
+                    svn_repos_authz_func_t authz_read_func,
+                    void *authz_read_baton,
+                    svn_log_entry_receiver_t receiver,
+                    void *receiver_baton,
+                    apr_pool_t *pool)
+{
+  return svn_repos_get_logs5(repos, paths, start, end, limit,
+                             discover_changed_paths, strict_node_history,
+                             include_merged_revisions, FALSE, revprops,
+                             authz_read_func, authz_read_baton, receiver,
+                             receiver_baton, pool);
+}
+
+svn_error_t *
 svn_repos_get_logs3(svn_repos_t *repos,
                     const apr_array_header_t *paths,
                     svn_revnum_t start,

Modified: subversion/branches/ignore-mergeinfo-log/subversion/libsvn_repos/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/libsvn_repos/log.c?rev=1063360&r1=1063359&r2=1063360&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/libsvn_repos/log.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/libsvn_repos/log.c Tue Jan 25 17:06:57 2011
@@ -1609,7 +1609,7 @@ do_logs(svn_fs_t *fs,
 
 
 svn_error_t *
-svn_repos_get_logs4(svn_repos_t *repos,
+svn_repos_get_logs5(svn_repos_t *repos,
                     const apr_array_header_t *paths,
                     svn_revnum_t start,
                     svn_revnum_t end,
@@ -1617,6 +1617,7 @@ svn_repos_get_logs4(svn_repos_t *repos,
                     svn_boolean_t discover_changed_paths,
                     svn_boolean_t strict_node_history,
                     svn_boolean_t include_merged_revisions,
+                    svn_boolean_t ignore_mergeinfo,
                     const apr_array_header_t *revprops,
                     svn_repos_authz_func_t authz_read_func,
                     void *authz_read_baton,
@@ -1628,6 +1629,13 @@ svn_repos_get_logs4(svn_repos_t *repos,
   svn_fs_t *fs = repos->fs;
   svn_boolean_t descending_order;
 
+  /* Including merged revisions and ignoring mergeinfo simultaneously is
+     nonsensical, so prohibit it. */
+  if (include_merged_revisions && ignore_mergeinfo)
+    return svn_error_create
+      (SVN_ERR_NONSENSICAL_OPTIONS, NULL,
+       _("Can't ignore mergeinfo and include merged revisions simultaneously"));
+
   /* Setup log range. */
   SVN_ERR(svn_fs_youngest_rev(&head, fs, pool));
 
@@ -1664,7 +1672,7 @@ svn_repos_get_logs4(svn_repos_t *repos,
      paths or a single empty (or "/") path, then we can bypass a bunch
      of complexity because we already know in which revisions the root
      directory was changed -- all of them.  */
-  if ((! include_merged_revisions)
+  if ((! include_merged_revisions)  && (! ignore_mergeinfo)
       && ((! paths->nelts)
           || ((paths->nelts == 1)
               && (svn_path_is_empty(APR_ARRAY_IDX(paths, 0, const char *))