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/04 16:49:03 UTC
svn commit: r1055083 - in
/subversion/branches/ignore-mergeinfo-log/subversion: include/svn_dav.h
include/svn_ra.h include/svn_ra_svn.h libsvn_ra_local/ra_plugin.c
libsvn_ra_neon/options.c libsvn_ra_serf/options.c libsvn_ra_svn/client.c
Author: hwright
Date: Tue Jan 4 15:49:03 2011
New Revision: 1055083
URL: http://svn.apache.org/viewvc?rev=1055083&view=rev
Log:
On the ignore-mergeinfo-log branch:
Add the machinery for detecting and storing the IGNORE_MERGEINFO capability
from the server.
* subversion/libsvn_ra_local/ra_plugin.c
(svn_ra_local__has_capability): Recognize the IGNORE_MERGEINFO capability.
* subversion/libsvn_ra_svn/client.c
(ra_svn_has_capability): Same.
* subversion/libsvn_ra_neon/options.c
(parse_capabilities): Same.
* subversion/libsvn_ra_serf/options.c
(capabilities_headers_iterator_callback, options_response_handler): Same.
* subversion/include/svn_dav.h
(SVN_DAV_NS_DAV_SVN_IGNORE_MERGEINFO): New.
* subversion/include/svn_ra_svn.h
(SVN_RA_SVN_CAP_IGNORE_MERGEINFO): New.
* subversion/include/svn_ra.h
(SVN_RA_CAPABILITY_IGNORE_MERGEINFO): New.
Modified:
subversion/branches/ignore-mergeinfo-log/subversion/include/svn_dav.h
subversion/branches/ignore-mergeinfo-log/subversion/include/svn_ra.h
subversion/branches/ignore-mergeinfo-log/subversion/include/svn_ra_svn.h
subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_local/ra_plugin.c
subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_neon/options.c
subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_serf/options.c
subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_svn/client.c
Modified: subversion/branches/ignore-mergeinfo-log/subversion/include/svn_dav.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/include/svn_dav.h?rev=1055083&r1=1055082&r2=1055083&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/include/svn_dav.h (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/include/svn_dav.h Tue Jan 4 15:49:03 2011
@@ -249,6 +249,12 @@ extern "C" {
SVN_DAV_PROP_NS_DAV "svn/atomic-revprops"
/** Presence of this in a DAV header in an OPTIONS response indicates
+ * that the transmitter (in this case, the server) knows how to filter
+ * various operations with respect to mergeinfo. */
+#define SVN_DAV_NS_DAV_SVN_IGNORE_MERGEINFO\
+ SVN_DAV_PROP_NS_DAV "svn/ignore-mergeinfo"
+
+/** Presence of this in a DAV header in an OPTIONS response indicates
* that the transmitter (in this case, the server) knows how to handle
* a replay of a directory in the repository (not root). */
#define SVN_DAV_NS_DAV_SVN_PARTIAL_REPLAY\
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=1055083&r1=1055082&r2=1055083&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/include/svn_ra.h (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/include/svn_ra.h Tue Jan 4 15:49:03 2011
@@ -1996,6 +1996,14 @@ svn_ra_has_capability(svn_ra_session_t *
*/
#define SVN_RA_CAPABILITY_ATOMIC_REVPROPS "atomic-revprops"
+/**
+ * The capability to ignore mergeinfo when performing various requests,
+ * such as logs.
+ *
+ * @since New in 1.7
+ */
+#define SVN_RA_CAPABILITY_IGNORE_MERGEINFO "ignore-mergeinfo"
+
/* *** PLEASE READ THIS IF YOU ADD A NEW CAPABILITY ***
*
* RA layers generally fetch all capabilities when asked about any
Modified: subversion/branches/ignore-mergeinfo-log/subversion/include/svn_ra_svn.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/include/svn_ra_svn.h?rev=1055083&r1=1055082&r2=1055083&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/include/svn_ra_svn.h (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/include/svn_ra_svn.h Tue Jan 4 15:49:03 2011
@@ -62,6 +62,8 @@ extern "C" {
#define SVN_RA_SVN_CAP_PARTIAL_REPLAY "partial-replay"
/* maps to SVN_RA_CAPABILITY_ATOMIC_REVPROPS */
#define SVN_RA_SVN_CAP_ATOMIC_REVPROPS "atomic-revprops"
+/* maps to SVN_RA_CAPABILITY_IGNORE_MERGEINFO */
+#define SVN_RA_SVN_CAP_IGNORE_MERGEINFO "ignore-mergeinfo"
/** ra_svn passes @c svn_dirent_t fields over the wire as a list of
* words, these are the values used to represent each field.
Modified: subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_local/ra_plugin.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_local/ra_plugin.c?rev=1055083&r1=1055082&r2=1055083&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_local/ra_plugin.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_local/ra_plugin.c Tue Jan 4 15:49:03 2011
@@ -1401,7 +1401,8 @@ svn_ra_local__has_capability(svn_ra_sess
|| strcmp(capability, SVN_RA_CAPABILITY_LOG_REVPROPS) == 0
|| strcmp(capability, SVN_RA_CAPABILITY_PARTIAL_REPLAY) == 0
|| strcmp(capability, SVN_RA_CAPABILITY_COMMIT_REVPROPS) == 0
- || strcmp(capability, SVN_RA_CAPABILITY_ATOMIC_REVPROPS) == 0)
+ || strcmp(capability, SVN_RA_CAPABILITY_ATOMIC_REVPROPS) == 0
+ || strcmp(capability, SVN_RA_CAPABILITY_IGNORE_MERGEINFO) == 0)
{
*has = TRUE;
}
Modified: subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_neon/options.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_neon/options.c?rev=1055083&r1=1055082&r2=1055083&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_neon/options.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_neon/options.c Tue Jan 4 15:49:03 2011
@@ -154,6 +154,8 @@ parse_capabilities(ne_request *req,
APR_HASH_KEY_STRING, capability_no);
apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_ATOMIC_REVPROPS,
APR_HASH_KEY_STRING, capability_no);
+ apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_IGNORE_MERGEINFO,
+ APR_HASH_KEY_STRING, capability_no);
/* Then find out which ones are supported. */
val = ne_get_response_header(req, "dav");
@@ -205,6 +207,11 @@ parse_capabilities(ne_request *req,
apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_ATOMIC_REVPROPS,
APR_HASH_KEY_STRING, capability_yes);
+ if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_IGNORE_MERGEINFO,
+ vals))
+ apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_IGNORE_MERGEINFO,
+ APR_HASH_KEY_STRING, capability_yes);
+
if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_PARTIAL_REPLAY,
vals))
apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_PARTIAL_REPLAY,
Modified: subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_serf/options.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_serf/options.c?rev=1055083&r1=1055082&r2=1055083&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_serf/options.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_serf/options.c Tue Jan 4 15:49:03 2011
@@ -320,6 +320,13 @@ capabilities_headers_iterator_callback(v
SVN_RA_CAPABILITY_ATOMIC_REVPROPS,
APR_HASH_KEY_STRING, capability_yes);
}
+ if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_IGNORE_MERGEINFO,
+ vals))
+ {
+ apr_hash_set(orc->session->capabilities,
+ SVN_RA_CAPABILITY_IGNORE_MERGEINFO,
+ APR_HASH_KEY_STRING, capability_yes);
+ }
if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_PARTIAL_REPLAY, vals))
{
apr_hash_set(orc->session->capabilities,
@@ -413,6 +420,8 @@ options_response_handler(serf_request_t
APR_HASH_KEY_STRING, capability_no);
apr_hash_set(orc->session->capabilities, SVN_RA_CAPABILITY_ATOMIC_REVPROPS,
APR_HASH_KEY_STRING, capability_no);
+ apr_hash_set(orc->session->capabilities, SVN_RA_CAPABILITY_IGNORE_MERGEINFO,
+ APR_HASH_KEY_STRING, capability_no);
/* Then see which ones we can discover. */
serf_bucket_headers_do(hdrs, capabilities_headers_iterator_callback, orc);
Modified: subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_svn/client.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_svn/client.c?rev=1055083&r1=1055082&r2=1055083&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_svn/client.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/libsvn_ra_svn/client.c Tue Jan 4 15:49:03 2011
@@ -2466,6 +2466,9 @@ static svn_error_t *ra_svn_has_capabilit
else if (strcmp(capability, SVN_RA_CAPABILITY_ATOMIC_REVPROPS) == 0)
*has = svn_ra_svn_has_capability(sess->conn,
SVN_RA_SVN_CAP_ATOMIC_REVPROPS);
+ else if (strcmp(capability, SVN_RA_CAPABILITY_IGNORE_MERGEINFO) == 0)
+ *has = svn_ra_svn_has_capability(sess->conn,
+ SVN_RA_SVN_CAP_IGNORE_MERGEINFO);
else /* Don't know any other capabilities, so error. */
{
return svn_error_createf