You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2011/04/27 02:06:37 UTC

svn commit: r1096971 - /subversion/trunk/subversion/libsvn_client/externals.c

Author: rhuijben
Date: Wed Apr 27 00:06:37 2011
New Revision: 1096971

URL: http://svn.apache.org/viewvc?rev=1096971&view=rev
Log:
Make sure the crawling for local svn:externals changes also finds changes
to existing svn:externals properties.

* subversion/libsvn_client/externals.c
  (svn_client__gather_local_external_changes): Add all local svn:externals
    changes. Not just the ones that didn't exist yet.

Found by: steveking

Modified:
    subversion/trunk/subversion/libsvn_client/externals.c

Modified: subversion/trunk/subversion/libsvn_client/externals.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/externals.c?rev=1096971&r1=1096970&r2=1096971&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/externals.c (original)
+++ subversion/trunk/subversion/libsvn_client/externals.c Wed Apr 27 00:06:37 2011
@@ -1477,14 +1477,20 @@ svn_client__gather_local_external_change
        hi = apr_hash_next(hi))
     {
       const char *local_abspath = svn__apr_hash_index_key(hi);
+      svn_string_t *propval = svn__apr_hash_index_val(hi);
+      apr_pool_t *hash_pool = apr_hash_pool_get(externals_new);
 
-      if (! apr_hash_get(externals_new, local_abspath, APR_HASH_KEY_STRING))
-        {
-          apr_pool_t *hash_pool = apr_hash_pool_get(externals_new);
-          svn_string_t *propval = svn__apr_hash_index_val(hi);
+      local_abspath = apr_pstrdup(hash_pool, local_abspath);
+
+      /* Override existing pristine definitions */
+      apr_hash_set(externals_new, local_abspath, APR_HASH_KEY_STRING,
+                   apr_pstrdup(hash_pool, propval->data));
 
-          apr_hash_set(externals_new, local_abspath, APR_HASH_KEY_STRING,
-                       apr_pstrdup(hash_pool, propval->data));
+      /* Make sure that when using ambient depths, there is a depth for
+         every path */
+      if (ambient_depths
+          && !apr_hash_get(ambient_depths, local_abspath, APR_HASH_KEY_STRING))
+        {
           apr_hash_set(ambient_depths, local_abspath, APR_HASH_KEY_STRING,
                        svn_depth_to_word(svn_depth_infinity));
         }