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));
}