Daniel Becroft <djcbecroft_at_gmail.com> writes:
> On 27/01/2011, at 17:04, Noorul Islam K M <noorul_at_collab.net> wrote:
>
>> Hi,
>>
>> I am planning to work on issue 3690. Before starting with this I have
>> few questions.
>>
>> 1. Hyrum updated the issue with his comment stating that already there
>> is work going on in the branch ignore-mergeinfo which addresses
>> subset of issue 3690, i.e ignoring changes to svn:mergeinfo. Is
>> svn:mergeinfo an svn property set using svn pset command? I think Zvi
>> Rackover is talking about a new option passing which a user can
>> ignore revisions with just the following property changes alone.
>>
>> author eol-style externals keywords mime-type
>> date executable ignore log needs-lock
>
> Fyi, svn:author, svn:date and svn:log are revision properties - changes to these don't appear in the log.
>
> Cheers,
> Daniel
> Sent from my phone.
>
I started working on this and I think I completed the changes for
svn_ra_local. Attached is the patch. This is a work in progress. I would
like to get some initial comments/suggestions on the patch and would
like to know whether I am proceeding on right direction.
This patch adds new option '--ignore-properties' to 'log' sub
command. If this option is provided then command ignore revisions that
has only property changes from output.
Thanks and Regards
Noorul
Index: subversion/libsvn_ra/deprecated.c
===================================================================
--- subversion/libsvn_ra/deprecated.c (revision 1065683)
+++ subversion/libsvn_ra/deprecated.c (working copy)
@@ -293,6 +293,25 @@
versus_url, diff_editor, diff_baton, pool);
}
+svn_error_t *svn_ra_get_log2(svn_ra_session_t *session,
+ 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_log_entry_receiver_t receiver,
+ void *receiver_baton,
+ apr_pool_t *pool)
+{
+ return svn_ra_get_log3(session, paths, start, end, limit,
+ discover_changed_paths, strict_node_history,
+ FALSE, FALSE, revprops,
+ receiver, receiver_baton, pool);
+}
+
svn_error_t *svn_ra_get_log(svn_ra_session_t *session,
const apr_array_header_t *paths,
svn_revnum_t start,
Index: subversion/libsvn_ra/wrapper_template.h
===================================================================
--- subversion/libsvn_ra/wrapper_template.h (revision 1065683)
+++ subversion/libsvn_ra/wrapper_template.h (working copy)
@@ -389,6 +389,7 @@
return VTBL.get_log(session_baton, paths, start, end, 0, /* limit */
discover_changed_paths, strict_node_history,
FALSE, /* include_merged_revisions */
+ FALSE, /* ignore_properties */
svn_compat_log_revprops_in(pool), /* revprops */
receiver2, receiver2_baton, pool);
}
Index: subversion/libsvn_ra/ra_loader.c
===================================================================
--- subversion/libsvn_ra/ra_loader.c (revision 1065683)
+++ subversion/libsvn_ra/ra_loader.c (working copy)
@@ -879,7 +879,7 @@
diff_baton, pool);
}
-svn_error_t *svn_ra_get_log2(svn_ra_session_t *session,
+svn_error_t *svn_ra_get_log3(svn_ra_session_t *session,
const apr_array_header_t *paths,
svn_revnum_t start,
svn_revnum_t end,
@@ -887,6 +887,7 @@
svn_boolean_t discover_changed_paths,
svn_boolean_t strict_node_history,
svn_boolean_t include_merged_revisions,
+ svn_boolean_t ignore_properties,
const apr_array_header_t *revprops,
svn_log_entry_receiver_t receiver,
void *receiver_baton,
@@ -907,8 +908,8 @@
return session->vtable->get_log(session, paths, start, end, limit,
discover_changed_paths, strict_node_history,
- include_merged_revisions, revprops,
- receiver, receiver_baton, pool);
+ include_merged_revisions, ignore_properties,
+ revprops, receiver, receiver_baton, pool);
}
svn_error_t *svn_ra_check_path(svn_ra_session_t *session,
Index: subversion/libsvn_ra/ra_loader.h
===================================================================
--- subversion/libsvn_ra/ra_loader.h (revision 1065683)
+++ subversion/libsvn_ra/ra_loader.h (working copy)
@@ -171,6 +171,7 @@
svn_boolean_t discover_changed_paths,
svn_boolean_t strict_node_history,
svn_boolean_t include_merged_revisions,
+ svn_boolean_t ignore_properties,
const apr_array_header_t *revprops,
svn_log_entry_receiver_t receiver,
void *receiver_baton,
Index: subversion/libsvn_ra_local/ra_plugin.c
===================================================================
--- subversion/libsvn_ra_local/ra_plugin.c (revision 1065683)
+++ subversion/libsvn_ra_local/ra_plugin.c (working copy)
@@ -873,6 +873,7 @@
svn_boolean_t discover_changed_paths,
svn_boolean_t strict_node_history,
svn_boolean_t include_merged_revisions,
+ svn_boolean_t ignore_properties,
const apr_array_header_t *revprops,
svn_log_entry_receiver_t receiver,
void *receiver_baton,
@@ -906,7 +907,7 @@
receiver_baton = &lb;
}
- return svn_repos_get_logs4(sess->repos,
+ return svn_repos_get_logs5(sess->repos,
abs_paths,
start,
end,
@@ -914,6 +915,7 @@
discover_changed_paths,
strict_node_history,
include_merged_revisions,
+ ignore_properties,
revprops,
NULL, NULL,
receiver,
Index: subversion/tests/cmdline/log_tests.py
===================================================================
--- subversion/tests/cmdline/log_tests.py (revision 1065683)
+++ subversion/tests/cmdline/log_tests.py (working copy)
@@ -1750,6 +1750,27 @@
"differs from that on move source '%s'"
% (psi_moved_path, psi_path))
+def log_ignore_properties(sbox):
+ "svn log --ignore-properties"
+ sbox.build()
+ wc_dir = sbox.wc_dir
+ iota_file = os.path.join(wc_dir, 'iota')
+ svntest.main.run_svn(None, 'propset', 'foo', 'bar', iota_file)
+ svntest.main.run_svn(None, 'ci', '-m',
+ 'Set property "foo" to "bar" on A/iota', wc_dir)
+
+ svntest.main.run_svn(None, 'propset', 'bar', 'foo', iota_file)
+ svntest.main.run_svn(None, 'ci', '-m',
+ 'Set property "bar" to "foo" on A/iota', wc_dir)
+
+ exit_code, output, error = svntest.main.run_svn(0, 'log',
+ '--ignore-properties',
+ wc_dir)
+
+ expected_output_re = re.compile(".*Set property.*")
+ if expected_output_re.match("".join(output)):
+ raise svntest.Failure('Log failed with --ignore-properties failed')
+
########################################################################
# Run the tests
@@ -1792,6 +1813,7 @@
SkipUnless(merge_sensitive_log_propmod_merge_inheriting_path,
server_has_mergeinfo),
log_of_local_copy,
+ log_ignore_properties,
]
if __name__ == '__main__':
Index: subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
===================================================================
--- subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout (revision 1065683)
+++ subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout (working copy)
@@ -76,6 +76,7 @@
Ignore changes in EOL style.
-p (--show-c-function):
Show C function name in diff output.
+ --ignore-properties : ignore revisions with only property changes
Global options:
--username ARG : specify a username ARG
Index: subversion/svn/cl.h
===================================================================
--- subversion/svn/cl.h (revision 1065683)
+++ subversion/svn/cl.h (working copy)
@@ -230,6 +230,8 @@
svn_boolean_t internal_diff; /* override diff_cmd in config file */
svn_boolean_t use_git_diff_format; /* Use git's extended diff format */
svn_boolean_t allow_mixed_rev; /* Allow operation on mixed-revision WC */
+ svn_boolean_t ignore_properties; /* Ignore revisions with only property
+ changes from log command output */
} svn_cl__opt_state_t;
Index: subversion/svn/log-cmd.c
===================================================================
--- subversion/svn/log-cmd.c (revision 1065683)
+++ subversion/svn/log-cmd.c (working copy)
@@ -706,13 +706,14 @@
if (!opt_state->quiet)
APR_ARRAY_PUSH(revprops, const char *) = SVN_PROP_REVISION_LOG;
}
- SVN_ERR(svn_client_log5(targets,
+ SVN_ERR(svn_client_log6(targets,
&peg_revision,
opt_state->revision_ranges,
opt_state->limit,
opt_state->verbose,
opt_state->stop_on_copy,
opt_state->use_merge_history,
+ opt_state->ignore_properties,
revprops,
log_entry_receiver_xml,
&lb,
@@ -729,13 +730,14 @@
APR_ARRAY_PUSH(revprops, const char *) = SVN_PROP_REVISION_DATE;
if (!opt_state->quiet)
APR_ARRAY_PUSH(revprops, const char *) = SVN_PROP_REVISION_LOG;
- SVN_ERR(svn_client_log5(targets,
+ SVN_ERR(svn_client_log6(targets,
&peg_revision,
opt_state->revision_ranges,
opt_state->limit,
opt_state->verbose,
opt_state->stop_on_copy,
opt_state->use_merge_history,
+ opt_state->ignore_properties,
revprops,
log_entry_receiver,
&lb,
Index: subversion/svn/main.c
===================================================================
--- subversion/svn/main.c (revision 1065683)
+++ subversion/svn/main.c (working copy)
@@ -123,6 +123,7 @@
opt_internal_diff,
opt_use_git_diff_format,
opt_allow_mixed_revisions,
+ opt_ignore_properties,
} svn_cl__longopt_t;
@@ -338,6 +339,8 @@
"Use of this option is not recommended!\n"
" "
"Please run 'svn update' instead.")},
+ {"ignore-properties", opt_ignore_properties, 0,
+ N_("ignore revisions with only property changes")},
/* Long-opt Aliases
*
@@ -668,7 +671,7 @@
" svn log http://www.example.com/repo/project@50 foo.c bar.c\n"),
{'r', 'q', 'v', 'g', 'c', opt_targets, opt_stop_on_copy, opt_incremental,
opt_xml, 'l', opt_with_all_revprops, opt_with_no_revprops, opt_with_revprop,
- opt_diff, opt_diff_cmd, opt_internal_diff, 'x'},
+ opt_diff, opt_diff_cmd, opt_internal_diff, 'x', opt_ignore_properties},
{{opt_with_revprop, N_("retrieve revision property ARG")},
{'c', N_("the change made in revision ARG")}} },
@@ -1816,6 +1819,9 @@
case opt_allow_mixed_revisions:
opt_state.allow_mixed_rev = TRUE;
break;
+ case opt_ignore_properties:
+ opt_state.ignore_properties = TRUE;
+ break;
default:
/* Hmmm. Perhaps this would be a good place to squirrel away
opts that commands like svn diff might need. Hmmm indeed. */
Index: subversion/include/svn_repos.h
===================================================================
--- subversion/include/svn_repos.h (revision 1065683)
+++ subversion/include/svn_repos.h (working copy)
@@ -1579,6 +1579,9 @@
* If @a include_merged_revisions is set, log information for revisions
* which have been merged to @a targets will also be returned.
*
+ * If @a include_properties is set, log information for revisions
+ * which only have property change will not be returned.
+ *
* If @a revprops is NULL, retrieve all revprops; else, retrieve only the
* revprops named in the array (i.e. retrieve none if the array is empty).
*
@@ -1602,6 +1605,29 @@
*
* Use @a pool for temporary allocations.
*
+ * @since New in 1.7.
+ */
+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_properties,
+ 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);
+
+/**
+ * Same as svn_repos_get_logs5(), but with @a ignore_properties
+ * always @c FALSE.
+ *
* @since New in 1.5.
*/
svn_error_t *
Index: subversion/include/svn_client.h
===================================================================
--- subversion/include/svn_client.h (revision 1065683)
+++ subversion/include/svn_client.h (working copy)
@@ -2341,6 +2341,9 @@
* If @a include_merged_revisions is set, log information for revisions
* which have been merged to @a targets will also be returned.
*
+ * If @a ignore_properties is set, log will ignore any revision with
+ * svn property changes alone when determinig which revisions to return.
+ *
* If @a revprops is NULL, retrieve all revprops; else, retrieve only the
* revprops named in the array (i.e. retrieve none if the array is empty).
*
@@ -2356,8 +2359,31 @@
* If @a ctx->notify_func2 is non-NULL, then call @a ctx->notify_func2/baton2
* with a 'skip' signal on any unversioned targets.
*
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_client_log6(const apr_array_header_t *targets,
+ const svn_opt_revision_t *peg_revision,
+ const apr_array_header_t *revision_ranges,
+ int limit,
+ svn_boolean_t discover_changed_paths,
+ svn_boolean_t strict_node_history,
+ svn_boolean_t include_merged_revisions,
+ svn_boolean_t ignore_properties,
+ const apr_array_header_t *revprops,
+ svn_log_entry_receiver_t receiver,
+ void *receiver_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/**
+ * Similar to svn_client_log6(), but with @a ignore_properties
+ * always @c FALSE.
+ *
+ * @deprecated Provided for compatibility with the 1.6 API.
* @since New in 1.6.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_log5(const apr_array_header_t *targets,
const svn_opt_revision_t *peg_revision,
Index: subversion/include/svn_ra.h
===================================================================
--- subversion/include/svn_ra.h (revision 1065683)
+++ subversion/include/svn_ra.h (working copy)
@@ -1433,6 +1433,9 @@
* If @a include_merged_revisions is set, log information for revisions
* which have been merged to @a targets will also be returned.
*
+ * If @a ignore_properties is set, do not log information for revisions
+ * which have only property changes.
+ *
* If @a revprops is NULL, retrieve all revprops; else, retrieve only the
* revprops named in the array (i.e. retrieve none if the array is empty).
*
@@ -1459,9 +1462,27 @@
* revprops is NULL or contains a revprop other than svn:author, svn:date,
* or svn:log, an @c SVN_ERR_RA_NOT_IMPLEMENTED error is returned.
*
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_ra_get_log3(svn_ra_session_t *session,
+ 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_properties,
+ const apr_array_header_t *revprops,
+ svn_log_entry_receiver_t receiver,
+ void *receiver_baton,
+ apr_pool_t *pool);
+
+/**
+ * Similar to svn_ra_get_log3(), but with ignore_properties set to @c FALSE.
* @since New in 1.5.
*/
-
svn_error_t *
svn_ra_get_log2(svn_ra_session_t *session,
const apr_array_header_t *paths,
Index: subversion/libsvn_client/deprecated.c
===================================================================
--- subversion/libsvn_client/deprecated.c (revision 1065683)
+++ subversion/libsvn_client/deprecated.c (working copy)
@@ -1201,6 +1201,26 @@
/*** From log.c ***/
svn_error_t *
+svn_client_log5(const apr_array_header_t *targets,
+ const svn_opt_revision_t *peg_revision,
+ const apr_array_header_t *revision_ranges,
+ 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_log_entry_receiver_t receiver,
+ void *receiver_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ return svn_client_log6(targets, peg_revision, revision_ranges, limit,
+ discover_changed_paths, strict_node_history,
+ include_merged_revisions, FALSE, revprops,
+ receiver, receiver_baton, ctx, pool);
+}
+
+svn_error_t *
svn_client_log4(const apr_array_header_t *targets,
const svn_opt_revision_t *peg_revision,
const svn_opt_revision_t *start,
Index: subversion/libsvn_client/log.c
===================================================================
--- subversion/libsvn_client/log.c (revision 1065683)
+++ subversion/libsvn_client/log.c (working copy)
@@ -266,13 +266,14 @@
svn_error_t *
-svn_client_log5(const apr_array_header_t *targets,
+svn_client_log6(const apr_array_header_t *targets,
const svn_opt_revision_t *peg_revision,
const apr_array_header_t *revision_ranges,
int limit,
svn_boolean_t discover_changed_paths,
svn_boolean_t strict_node_history,
svn_boolean_t include_merged_revisions,
+ svn_boolean_t ignore_properties,
const apr_array_header_t *revprops,
svn_log_entry_receiver_t real_receiver,
void *real_receiver_baton,
@@ -603,7 +604,7 @@
passed_receiver_baton = &lb;
}
- SVN_ERR(svn_ra_get_log2(ra_session,
+ SVN_ERR(svn_ra_get_log3(ra_session,
condensed_targets,
start_revnum,
end_revnum,
@@ -611,6 +612,7 @@
discover_changed_paths,
strict_node_history,
include_merged_revisions,
+ ignore_properties,
passed_receiver_revprops,
passed_receiver,
passed_receiver_baton,
Index: subversion/libsvn_repos/deprecated.c
===================================================================
--- subversion/libsvn_repos/deprecated.c (revision 1065683)
+++ subversion/libsvn_repos/deprecated.c (working copy)
@@ -428,6 +428,29 @@
/*** 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,
+ FALSE, 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,
Index: subversion/libsvn_repos/log.c
===================================================================
--- subversion/libsvn_repos/log.c (revision 1065683)
+++ subversion/libsvn_repos/log.c (working copy)
@@ -170,11 +170,15 @@
* SVN_ERR_AUTHZ_UNREADABLE. (This is to distinguish a revision
* which truly has no changed paths from a revision in which all
* paths are unreadable.)
+ *
+ * If the revision contains only property changes then set ONLY_PROP_CHANGE
+ * to TRUE.
*/
static svn_error_t *
detect_changed(apr_hash_t **changed,
svn_fs_root_t *root,
svn_fs_t *fs,
+ svn_boolean_t *only_prop_change,
svn_repos_authz_func_t authz_read_func,
void *authz_read_baton,
apr_pool_t *pool)
@@ -185,6 +189,7 @@
svn_boolean_t found_readable = FALSE;
svn_boolean_t found_unreadable = FALSE;
+ *only_prop_change = TRUE;
*changed = apr_hash_make(pool);
SVN_ERR(svn_fs_paths_changed2(&changes, root, pool));
@@ -226,6 +231,10 @@
}
}
+ /* Detect whether there is at least one non-property change. */
+ if (! change->prop_mod)
+ *only_prop_change = FALSE;
+
/* At least one changed-path was readable. */
found_readable = TRUE;
@@ -890,25 +899,27 @@
svn_revnum_t rev,
svn_fs_t *fs,
svn_boolean_t discover_changed_paths,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t *only_prop_change,
const apr_array_header_t *revprops,
svn_repos_authz_func_t authz_read_func,
void *authz_read_baton,
apr_pool_t *pool)
{
- apr_hash_t *r_props, *changed_paths = NULL;
+ apr_hash_t *r_props, *changed_paths;
svn_boolean_t get_revprops = TRUE, censor_revprops = FALSE;
/* Discover changed paths if the user requested them
or if we need to check that they are readable. */
if ((rev > 0)
- && (authz_read_func || discover_changed_paths))
+ && (authz_read_func || discover_changed_paths || ignore_properties))
{
svn_fs_root_t *newroot;
svn_error_t *patherr;
SVN_ERR(svn_fs_revision_root(&newroot, fs, rev, pool));
patherr = detect_changed(&changed_paths,
- newroot, fs,
+ newroot, fs, only_prop_change,
authz_read_func, authz_read_baton,
pool);
@@ -996,8 +1007,9 @@
* FS is used with REV to fetch the interesting history information,
* such as changed paths, revprops, etc.
*
- * The detect_changed function is used if either AUTHZ_READ_FUNC is
- * not NULL, or if DISCOVER_CHANGED_PATHS is TRUE. See it for details.
+ * The detect_changed function is used if AUTHZ_READ_FUNC is not NULL,
+ * if DISCOVER_CHANGED_PATHS is TRUE or if IGNORE_PROPERTIES is TRUE.
+ * See it for details.
*
* If DESCENDING_ORDER is true, send child messages in descending order.
*
@@ -1008,6 +1020,7 @@
send_log(svn_revnum_t rev,
svn_fs_t *fs,
svn_boolean_t discover_changed_paths,
+ svn_boolean_t ignore_properties,
const apr_array_header_t *revprops,
svn_boolean_t has_children,
svn_log_entry_receiver_t receiver,
@@ -1017,14 +1030,19 @@
apr_pool_t *pool)
{
svn_log_entry_t *log_entry;
+ svn_boolean_t only_prop_change;
log_entry = svn_log_entry_create(pool);
SVN_ERR(fill_log_entry(log_entry, rev, fs, discover_changed_paths,
- revprops, authz_read_func, authz_read_baton,
- pool));
+ ignore_properties, &only_prop_change, revprops,
+ authz_read_func, authz_read_baton, pool));
log_entry->has_children = has_children;
- /* Send the entry to the receiver. */
+ /* Skip property only revisions if IGNORE_PROPERTIES is TRUE */
+ if (ignore_properties && only_prop_change)
+ return NULL;
+
+ /* Send entry to the receiver. */
return (*receiver)(receiver_baton, log_entry, pool);
}
@@ -1362,6 +1380,7 @@
svn_boolean_t strict_node_history,
svn_boolean_t include_merged_revisions,
svn_boolean_t ignore_missing_locations,
+ svn_boolean_t ignore_properties,
const apr_array_header_t *revprops,
svn_boolean_t descending_order,
svn_log_entry_receiver_t receiver,
@@ -1387,6 +1406,7 @@
svn_mergeinfo_t mergeinfo,
svn_boolean_t discover_changed_paths,
svn_boolean_t strict_node_history,
+ svn_boolean_t ignore_properties,
const apr_array_header_t *revprops,
svn_log_entry_receiver_t receiver,
void *receiver_baton,
@@ -1415,9 +1435,9 @@
svn_pool_clear(iterpool);
SVN_ERR(do_logs(fs, pl_range->paths, pl_range->range.start,
pl_range->range.end, 0, discover_changed_paths,
- strict_node_history, TRUE, TRUE, revprops, TRUE,
- receiver, receiver_baton, authz_read_func,
- authz_read_baton, iterpool));
+ strict_node_history, TRUE, TRUE, ignore_properties,
+ revprops, TRUE, receiver, receiver_baton,
+ authz_read_func, authz_read_baton, iterpool));
}
svn_pool_destroy(iterpool);
@@ -1447,6 +1467,7 @@
svn_boolean_t strict_node_history,
svn_boolean_t include_merged_revisions,
svn_boolean_t ignore_missing_locations,
+ svn_boolean_t ignore_properties,
const apr_array_header_t *revprops,
svn_boolean_t descending_order,
svn_log_entry_receiver_t receiver,
@@ -1530,14 +1551,16 @@
in anyway). */
if (descending_order)
{
- SVN_ERR(send_log(current, fs, discover_changed_paths,
+ SVN_ERR(send_log(current, fs, discover_changed_paths,
+ ignore_properties,
revprops, has_children, receiver, receiver_baton,
authz_read_func, authz_read_baton, iterpool));
if (has_children)
{
SVN_ERR(handle_merged_revisions(current, fs, mergeinfo,
- discover_changed_paths,
- strict_node_history, revprops,
+ discover_changed_paths,
+ strict_node_history,
+ ignore_properties, revprops,
receiver, receiver_baton,
authz_read_func,
authz_read_baton,
@@ -1595,14 +1618,16 @@
}
SVN_ERR(send_log(current, fs,
- discover_changed_paths, revprops, has_children,
+ discover_changed_paths, ignore_properties,
+ revprops, has_children,
receiver, receiver_baton, authz_read_func,
authz_read_baton, iterpool));
if (has_children)
{
SVN_ERR(handle_merged_revisions(current, fs, mergeinfo,
discover_changed_paths,
- strict_node_history, revprops,
+ strict_node_history,
+ ignore_properties, revprops,
receiver, receiver_baton,
authz_read_func,
authz_read_baton,
@@ -1619,7 +1644,7 @@
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,
@@ -1627,6 +1652,7 @@
svn_boolean_t discover_changed_paths,
svn_boolean_t strict_node_history,
svn_boolean_t include_merged_revisions,
+ svn_boolean_t ignore_properties,
const apr_array_header_t *revprops,
svn_repos_authz_func_t authz_read_func,
void *authz_read_baton,
@@ -1696,18 +1722,17 @@
if (descending_order)
rev = end - i;
- SVN_ERR(send_log(rev, fs, discover_changed_paths, revprops, FALSE,
- receiver, receiver_baton, authz_read_func,
- authz_read_baton, iterpool));
+ SVN_ERR(send_log(rev, fs, discover_changed_paths, ignore_properties,
+ revprops, FALSE, receiver, receiver_baton,
+ authz_read_func, authz_read_baton, iterpool));
}
svn_pool_destroy(iterpool);
return SVN_NO_ERROR;
}
- return do_logs(repos->fs, paths, start, end, limit,
- discover_changed_paths, strict_node_history,
- include_merged_revisions, FALSE, revprops,
- descending_order, receiver, receiver_baton,
- authz_read_func, authz_read_baton, pool);
+ return do_logs(repos->fs, paths, start, end, limit, discover_changed_paths,
+ strict_node_history, include_merged_revisions, FALSE,
+ ignore_properties, revprops, descending_order, receiver,
+ receiver_baton, authz_read_func, authz_read_baton, pool);
}
Received on 2011-01-31 17:55:29 CET