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/03 22:46:17 UTC
svn commit: r1054785 - in
/subversion/branches/ignore-mergeinfo-log/subversion: include/svn_client.h
include/svn_error_codes.h include/svn_ra.h libsvn_client/deprecated.c
libsvn_client/log.c libsvn_ra/deprecated.c libsvn_ra/ra_loader.c
svn/log-cmd.c
Author: hwright
Date: Mon Jan 3 21:46:17 2011
New Revision: 1054785
URL: http://svn.apache.org/viewvc?rev=1054785&view=rev
Log:
On the ignore-mergeinfo-log branch:
Add API support for ignoring mergeinfo in 'svn log'. This doesn't actually
do the ignoring, just pushes parameters down to the RA layer.
* subversion/libsvn_ra/deprecated.c
(svn_ra_get_log2): New wrapper.
* subversion/libsvn_ra/ra_loader.c
(svn_ra_get_log3): New.
* subversion/svn/log-cmd.c
(svn_cl__log): Call the new client API, with the appropriate ignore_mergeinfo
flag value.
* subversion/include/svn_error_codes.h
(SVN_ERR_NONSENSICAL_OPTIONS): New.
* subversion/include/svn_client.h
(svn_client_log6): New.
(svn_client_log5): Deprecate.
* subversion/include/svn_ra.h
(svn_ra_get_log3): New.
(svn_ra_get_log2): Deprecate.
* subversion/libsvn_client/deprecated.c
(svn_client_log5): New deprecated wrapper.
* subversion/libsvn_client/log.c
(svn_client_log6): New.
Modified:
subversion/branches/ignore-mergeinfo-log/subversion/include/svn_client.h
subversion/branches/ignore-mergeinfo-log/subversion/include/svn_error_codes.h
subversion/branches/ignore-mergeinfo-log/subversion/include/svn_ra.h
subversion/branches/ignore-mergeinfo-log/subversion/libsvn_client/deprecated.c
subversion/branches/ignore-mergeinfo-log/subversion/libsvn_client/log.c
subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra/deprecated.c
subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra/ra_loader.c
subversion/branches/ignore-mergeinfo-log/subversion/svn/log-cmd.c
Modified: subversion/branches/ignore-mergeinfo-log/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/include/svn_client.h?rev=1054785&r1=1054784&r2=1054785&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/include/svn_client.h (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/include/svn_client.h Mon Jan 3 21:46:17 2011
@@ -2341,6 +2341,9 @@ svn_client_status(svn_revnum_t *result_r
* 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_mergeinfo_changes is set, log will ignore any changes to
+ * the svn:mergeinfo property when determining 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 @@ svn_client_status(svn_revnum_t *result_r
* 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_mergeinfo_changes,
+ 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_mergeinfo_changes
+ * 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,
Modified: subversion/branches/ignore-mergeinfo-log/subversion/include/svn_error_codes.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/include/svn_error_codes.h?rev=1054785&r1=1054784&r2=1054785&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/include/svn_error_codes.h (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/include/svn_error_codes.h Mon Jan 3 21:46:17 2011
@@ -1350,6 +1350,11 @@ SVN_ERROR_START
"SQLite busy at transaction rollback; "
"resetting all busy SQLite statements to allow rollback")
+ /** @since New in 1.7. */
+ SVN_ERRDEF(SVN_ERR_NONSENSICAL_OPTIONS,
+ SVN_ERR_MISC_CATEGORY_START + 35,
+ "Argument combinations are invalid")
+
/* command-line client errors */
SVN_ERRDEF(SVN_ERR_CL_ARG_PARSING_ERROR,
Modified: subversion/branches/ignore-mergeinfo-log/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/include/svn_ra.h?rev=1054785&r1=1054784&r2=1054785&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/include/svn_ra.h (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/include/svn_ra.h Mon Jan 3 21:46:17 2011
@@ -1459,9 +1459,30 @@ svn_ra_do_diff(svn_ra_session_t *session
* 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.5.
+ * @since New in 1.6.
*/
+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_mergeinfo,
+ 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 @a ignore_mergeinfo always @c FALSE.
+ *
+ * @since New in 1.5.
+ * @deprecated Provided for backward compatibility with the 1.6 API.
+ */
+SVN_DEPRECATED
svn_error_t *
svn_ra_get_log2(svn_ra_session_t *session,
const apr_array_header_t *paths,
Modified: subversion/branches/ignore-mergeinfo-log/subversion/libsvn_client/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/libsvn_client/deprecated.c?rev=1054785&r1=1054784&r2=1054785&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/libsvn_client/deprecated.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/libsvn_client/deprecated.c Mon Jan 3 21:46:17 2011
@@ -1201,6 +1201,26 @@ svn_client_ls(apr_hash_t **dirents,
/*** 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,
Modified: subversion/branches/ignore-mergeinfo-log/subversion/libsvn_client/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/libsvn_client/log.c?rev=1054785&r1=1054784&r2=1054785&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/libsvn_client/log.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/libsvn_client/log.c Mon Jan 3 21:46:17 2011
@@ -266,13 +266,14 @@ limit_receiver(void *baton, svn_log_entr
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_mergeinfo_changes,
const apr_array_header_t *revprops,
svn_log_entry_receiver_t real_receiver,
void *real_receiver_baton,
@@ -603,7 +604,7 @@ svn_client_log5(const apr_array_header_t
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 @@ svn_client_log5(const apr_array_header_t
discover_changed_paths,
strict_node_history,
include_merged_revisions,
+ ignore_mergeinfo_changes,
passed_receiver_revprops,
passed_receiver,
passed_receiver_baton,
Modified: subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra/deprecated.c?rev=1054785&r1=1054784&r2=1054785&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra/deprecated.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra/deprecated.c Mon Jan 3 21:46:17 2011
@@ -293,6 +293,25 @@ svn_error_t *svn_ra_do_diff(svn_ra_sessi
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,
+ include_merged_revisions, 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,
Modified: subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra/ra_loader.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra/ra_loader.c?rev=1054785&r1=1054784&r2=1054785&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra/ra_loader.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra/ra_loader.c Mon Jan 3 21:46:17 2011
@@ -868,7 +868,7 @@ svn_error_t *svn_ra_do_diff3(svn_ra_sess
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,
@@ -876,11 +876,19 @@ svn_error_t *svn_ra_get_log2(svn_ra_sess
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_log_entry_receiver_t receiver,
void *receiver_baton,
apr_pool_t *pool)
{
+ /* 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"));
+
if (paths)
{
int i;
Modified: subversion/branches/ignore-mergeinfo-log/subversion/svn/log-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/svn/log-cmd.c?rev=1054785&r1=1054784&r2=1054785&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/svn/log-cmd.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/svn/log-cmd.c Mon Jan 3 21:46:17 2011
@@ -706,13 +706,14 @@ svn_cl__log(apr_getopt_t *os,
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_mergeinfo,
revprops,
log_entry_receiver_xml,
&lb,
@@ -729,13 +730,14 @@ svn_cl__log(apr_getopt_t *os,
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_mergeinfo,
revprops,
log_entry_receiver,
&lb,