You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ph...@apache.org on 2014/04/29 18:09:40 UTC

svn commit: r1591015 - in /subversion/trunk/subversion: include/private/svn_subr_private.h libsvn_subr/config.c svn/svn.c svnmucc/svnmucc.c

Author: philip
Date: Tue Apr 29 16:09:40 2014
New Revision: 1591015

URL: http://svn.apache.org/r1591015
Log:
Move empty config creation code from svn to libsvn_subr and use it
in svnmucc as well.

* subversion/include/private/svn_subr_private.h
  (svn_config__get_default_config): New.

* subversion/libsvn_subr/config.c
  (svn_config__get_default_config): New.

* subversion/svn/svn.c
  (sub_main): Use svn_config__get_default_config, move hash get to just
   before use.

* subversion/svnmucc/svnmucc.c
  (sub_main): Use svn_config__get_default_config, move hash get to just
   before use.

Modified:
    subversion/trunk/subversion/include/private/svn_subr_private.h
    subversion/trunk/subversion/libsvn_subr/config.c
    subversion/trunk/subversion/svn/svn.c
    subversion/trunk/subversion/svnmucc/svnmucc.c

Modified: subversion/trunk/subversion/include/private/svn_subr_private.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_subr_private.h?rev=1591015&r1=1591014&r2=1591015&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_subr_private.h (original)
+++ subversion/trunk/subversion/include/private/svn_subr_private.h Tue Apr 29 16:09:40 2014
@@ -608,6 +608,16 @@ svn_config__shallow_replace_section(svn_
                                     svn_config_t *source,
                                     const char *section);
 
+/* Allocate *CFG_HASH and populate it with default, empty,
+ * svn_config_t for the configuration categories (@c
+ * SVN_CONFIG_CATEGORY_SERVERS, @c SVN_CONFIG_CATEGORY_CONFIG, etc.).
+ * This returns a hash equivalent to svn_config_get_config when the
+ * config files are empty.
+ */
+void
+svn_config__get_default_config(apr_hash_t **cfg_hash,
+                               apr_pool_t *pool);
+
 /** @} */
 
 

Modified: subversion/trunk/subversion/libsvn_subr/config.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/config.c?rev=1591015&r1=1591014&r2=1591015&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/config.c (original)
+++ subversion/trunk/subversion/libsvn_subr/config.c Tue Apr 29 16:09:40 2014
@@ -307,6 +307,20 @@ svn_config_get_config(apr_hash_t **cfg_h
   return SVN_NO_ERROR;
 }
 
+void
+svn_config__get_default_config(apr_hash_t **cfg_hash,
+                               apr_pool_t *pool)
+{
+  svn_config_t *empty_cfg;
+  *cfg_hash = apr_hash_make(pool);
+
+  SVN_ERR(svn_config_create2(&empty_cfg, FALSE, FALSE, pool));
+  svn_hash_sets(*cfg_hash, SVN_CONFIG_CATEGORY_CONFIG, empty_cfg);
+
+  SVN_ERR(svn_config_create2(&empty_cfg, FALSE, FALSE, pool));
+  svn_hash_sets(*cfg_hash, SVN_CONFIG_CATEGORY_SERVERS, empty_cfg);
+}
+
 
 
 /* Iterate through CFG, passing BATON to CALLBACK for every (SECTION, OPTION)

Modified: subversion/trunk/subversion/svn/svn.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/svn.c?rev=1591015&r1=1591014&r2=1591015&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/svn.c (original)
+++ subversion/trunk/subversion/svn/svn.c Tue Apr 29 16:09:40 2014
@@ -2594,11 +2594,8 @@ sub_main(int *exit_code, int argc, const
 
           svn_handle_warning2(stderr, err, "svn: ");
           svn_error_clear(err);
-          cfg_hash = apr_hash_make(pool);
-          SVN_ERR(svn_config_create2(&empty_cfg, FALSE, FALSE, pool));
-          svn_hash_sets(cfg_hash, SVN_CONFIG_CATEGORY_CONFIG, empty_cfg);
-          SVN_ERR(svn_config_create2(&empty_cfg, FALSE, FALSE, pool));
-          svn_hash_sets(cfg_hash, SVN_CONFIG_CATEGORY_SERVERS, empty_cfg);
+
+          svn_config__get_default_config(&cfg_hash, pool);
         }
       else
         return err;
@@ -2659,8 +2656,6 @@ sub_main(int *exit_code, int argc, const
         }
     }
 
-  cfg_config = svn_hash_gets(cfg_hash, SVN_CONFIG_CATEGORY_CONFIG);
-
   /* Update the options in the config */
   if (opt_state.config_options)
     {
@@ -2670,6 +2665,7 @@ sub_main(int *exit_code, int argc, const
                                             "svn: ", "--config-option"));
     }
 
+  cfg_config = svn_hash_gets(cfg_hash, SVN_CONFIG_CATEGORY_CONFIG);
 #if !defined(SVN_CL_NO_EXCLUSIVE_LOCK)
   {
     const char *exclusive_clients_option;

Modified: subversion/trunk/subversion/svnmucc/svnmucc.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnmucc/svnmucc.c?rev=1591015&r1=1591014&r2=1591015&view=diff
==============================================================================
--- subversion/trunk/subversion/svnmucc/svnmucc.c (original)
+++ subversion/trunk/subversion/svnmucc/svnmucc.c Tue Apr 29 16:09:40 2014
@@ -56,6 +56,7 @@
 #include "svn_version.h"
 
 #include "private/svn_cmdline_private.h"
+#include "private/svn_subr_private.h"
 
 /* Version compatibility check */
 static svn_error_t *
@@ -640,13 +641,13 @@ sub_main(int *exit_code, int argc, const
         {
           svn_handle_warning2(stderr, err, "svnmucc: ");
           svn_error_clear(err);
-          cfg_hash = NULL;
+
+          svn_config__get_default_config(&cfg_hash, pool);
         }
       else
         return err;
     }
 
-  cfg_config = svn_hash_gets(cfg_hash, SVN_CONFIG_CATEGORY_CONFIG);
   if (config_options)
     {
       svn_error_clear(
@@ -656,6 +657,7 @@ sub_main(int *exit_code, int argc, const
 
   SVN_ERR(svn_client_create_context2(&ctx, cfg_hash, pool));
 
+  cfg_config = svn_hash_gets(cfg_hash, SVN_CONFIG_CATEGORY_CONFIG);
   SVN_ERR(svn_cmdline_create_auth_baton(&ctx->auth_baton,
                                         non_interactive,
                                         username,