You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by da...@apache.org on 2013/07/01 19:54:44 UTC

svn commit: r1498608 - in /subversion/trunk/subversion: libsvn_ra_local/ra_local.h libsvn_ra_local/ra_plugin.c tests/cmdline/svnlook_tests.py

Author: danielsh
Date: Mon Jul  1 17:54:44 2013
New Revision: 1498608

URL: http://svn.apache.org/r1498608
Log:
Set svn:txn-user-agent under ra_local, for consistency with ra_svn and ra_serf.

* subversion/libsvn_ra_local/ra_local.h
  (svn_ra_local__session_baton_t): Add 'useragent' member.

* subversion/libsvn_ra_local/ra_plugin.c
  (USER_AGENT): New macro.

* subversion/tests/cmdline/svnlook_tests.py
  (svn_ra_local__open): Set 'useragent' member.
  (svn_ra_local__get_commit_editor): Set SVN_PROP_TXN_USER_AGENT.
* subversion/tests/cmdline/svnlook_tests.py
  (test_txn_flag): Expect the same output in every RA layer.

Modified:
    subversion/trunk/subversion/libsvn_ra_local/ra_local.h
    subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c
    subversion/trunk/subversion/tests/cmdline/svnlook_tests.py

Modified: subversion/trunk/subversion/libsvn_ra_local/ra_local.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_local/ra_local.h?rev=1498608&r1=1498607&r2=1498608&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_local/ra_local.h (original)
+++ subversion/trunk/subversion/libsvn_ra_local/ra_local.h Mon Jul  1 17:54:44 2013
@@ -62,6 +62,8 @@ typedef struct svn_ra_local__session_bat
   /* Callbacks/baton passed to svn_ra_open. */
   const svn_ra_callbacks2_t *callbacks;
   void *callback_baton;
+
+  const char *useragent;
 } svn_ra_local__session_baton_t;
 
 

Modified: subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c?rev=1498608&r1=1498607&r2=1498608&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c (original)
+++ subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c Mon Jul  1 17:54:44 2013
@@ -541,6 +541,9 @@ ignore_warnings(void *baton,
   return;
 }
 
+#define USER_AGENT "SVN/" SVN_VER_NUMBER " (" SVN_BUILD_TARGET ")" \
+                   " ra_local"
+
 static svn_error_t *
 svn_ra_local__open(svn_ra_session_t *session,
                    const char **corrected_url,
@@ -550,6 +553,7 @@ svn_ra_local__open(svn_ra_session_t *ses
                    apr_hash_t *config,
                    apr_pool_t *pool)
 {
+  const char *client_string;
   svn_ra_local__session_baton_t *sess;
   const char *fs_path;
   static volatile svn_atomic_t cache_init_state = 0;
@@ -592,6 +596,15 @@ svn_ra_local__open(svn_ra_session_t *ses
   /* Be sure username is NULL so we know to look it up / ask for it */
   sess->username = NULL;
 
+  if (sess->callbacks->get_client_string != NULL)
+    SVN_ERR(sess->callbacks->get_client_string(sess->callback_baton,
+                                               &client_string, pool));
+  if (client_string)
+    sess->useragent = apr_pstrcat(pool, USER_AGENT " ",
+                                  client_string, (char *)NULL);
+  else
+    sess->useragent = USER_AGENT;
+
   session->priv = sess;
   return SVN_NO_ERROR;
 }
@@ -765,6 +778,8 @@ svn_ra_local__get_commit_editor(svn_ra_s
                 svn_string_create(sess->username, pool));
   svn_hash_sets(revprop_table, SVN_PROP_TXN_CLIENT_COMPAT_VERSION,
                 svn_string_create(SVN_VER_NUMBER, pool));
+  svn_hash_sets(revprop_table, SVN_PROP_TXN_USER_AGENT,
+                svn_string_create(sess->useragent, pool));
 
   /* Get the repos commit-editor */
   return svn_repos_get_commit_editor5

Modified: subversion/trunk/subversion/tests/cmdline/svnlook_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svnlook_tests.py?rev=1498608&r1=1498607&r2=1498608&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/svnlook_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/svnlook_tests.py Mon Jul  1 17:54:44 2013
@@ -709,10 +709,8 @@ fp.close()"""
                     '  bogus_rev_prop\n',
                     '  svn:date\n',
                     '  svn:txn-client-compat-version\n',
+                    '  svn:txn-user-agent\n',
                     ]
-  # ra_dav and ra_svn add the user-agent ephemeral property
-  if svntest.main.is_ra_type_dav() or svntest.main.is_ra_type_svn():
-    expected_data.append('  svn:txn-user-agent\n')
   verify_logfile(logfilepath, svntest.verify.UnorderedOutput(expected_data))
 
 def property_delete(sbox):