You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2011/10/24 16:48:30 UTC
svn commit: r1188161 - in /subversion/trunk/subversion/libsvn_client:
merge.c mergeinfo.c mergeinfo.h
Author: julianfoad
Date: Mon Oct 24 14:48:29 2011
New Revision: 1188161
URL: http://svn.apache.org/viewvc?rev=1188161&view=rev
Log:
Combine two similar mergeinfo functions.
* subversion/libsvn_client/mergeinfo.h
(svn_client__adjust_mergeinfo_source_paths): Delete.
* subversion/libsvn_client/mergeinfo.c
(svn_client__adjust_mergeinfo_source_paths): Delete.
(svn_client__get_wc_mergeinfo, should_elide_mergeinfo): Use
svn_mergeinfo__add_suffix_to_mergeinfo() instead of
svn_client__adjust_mergeinfo_source_paths().
* subversion/libsvn_client/merge.c
(inherit_implicit_mergeinfo_from_parent): Same.
Modified:
subversion/trunk/subversion/libsvn_client/merge.c
subversion/trunk/subversion/libsvn_client/mergeinfo.c
subversion/trunk/subversion/libsvn_client/mergeinfo.h
Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1188161&r1=1188160&r2=1188161&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Mon Oct 24 14:48:29 2011
@@ -3549,17 +3549,15 @@ inherit_implicit_mergeinfo_from_parent(s
ctx, result_pool, scratch_pool));
/* Let CHILD inherit PARENT's implicit mergeinfo. */
- child->implicit_mergeinfo = apr_hash_make(result_pool);
path_diff = svn_dirent_is_child(parent->abspath, child->abspath,
scratch_pool);
-
/* PARENT->PATH better be an ancestor of CHILD->ABSPATH! */
SVN_ERR_ASSERT(path_diff);
- SVN_ERR(svn_client__adjust_mergeinfo_source_paths(
- child->implicit_mergeinfo, path_diff,
- parent->implicit_mergeinfo, result_pool));
+ SVN_ERR(svn_mergeinfo__add_suffix_to_mergeinfo(
+ &child->implicit_mergeinfo, parent->implicit_mergeinfo,
+ path_diff, result_pool, scratch_pool));
child->implicit_mergeinfo = svn_mergeinfo_dup(child->implicit_mergeinfo,
result_pool);
return SVN_NO_ERROR;
Modified: subversion/trunk/subversion/libsvn_client/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/mergeinfo.c?rev=1188161&r1=1188160&r2=1188161&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/mergeinfo.c (original)
+++ subversion/trunk/subversion/libsvn_client/mergeinfo.c Mon Oct 24 14:48:29 2011
@@ -141,33 +141,6 @@ svn_client__record_wc_mergeinfo(const ch
/*** Retrieving mergeinfo. ***/
svn_error_t *
-svn_client__adjust_mergeinfo_source_paths(svn_mergeinfo_t adjusted_mergeinfo,
- const char *rel_path,
- svn_mergeinfo_t mergeinfo,
- apr_pool_t *pool)
-{
- apr_hash_index_t *hi;
- const char *path;
-
- SVN_ERR_ASSERT(adjusted_mergeinfo);
- SVN_ERR_ASSERT(mergeinfo);
-
- for (hi = apr_hash_first(pool, mergeinfo); hi; hi = apr_hash_next(hi))
- {
- const char *merge_source = svn__apr_hash_index_key(hi);
- apr_array_header_t *rangelist = svn__apr_hash_index_val(hi);
-
- /* Copy inherited mergeinfo into our output hash, adjusting the
- merge source as appropriate. */
- path = svn_fspath__join(merge_source, rel_path, pool);
- apr_hash_set(adjusted_mergeinfo, path, APR_HASH_KEY_STRING,
- rangelist);
- }
- return SVN_NO_ERROR;
-}
-
-
-svn_error_t *
svn_client__get_wc_mergeinfo(svn_mergeinfo_t *mergeinfo,
svn_boolean_t *inherited,
svn_mergeinfo_inheritance_t inherit,
@@ -294,11 +267,11 @@ svn_client__get_wc_mergeinfo(svn_mergein
if (wc_mergeinfo)
{
*inherited = TRUE;
- *mergeinfo = apr_hash_make(result_pool);
- SVN_ERR(svn_client__adjust_mergeinfo_source_paths(*mergeinfo,
- walk_relpath,
- wc_mergeinfo,
- result_pool));
+ SVN_ERR(svn_mergeinfo__add_suffix_to_mergeinfo(mergeinfo,
+ wc_mergeinfo,
+ walk_relpath,
+ result_pool,
+ scratch_pool));
}
else
{
@@ -810,13 +783,11 @@ should_elide_mergeinfo(svn_boolean_t *el
svn_mergeinfo_t path_tweaked_parent_mergeinfo;
apr_pool_t *subpool = svn_pool_create(pool);
- path_tweaked_parent_mergeinfo = apr_hash_make(subpool);
-
/* If we need to adjust the paths in PARENT_MERGEINFO do it now. */
if (path_suffix)
- SVN_ERR(svn_client__adjust_mergeinfo_source_paths(
- path_tweaked_parent_mergeinfo,
- path_suffix, parent_mergeinfo, subpool));
+ SVN_ERR(svn_mergeinfo__add_suffix_to_mergeinfo(
+ &path_tweaked_parent_mergeinfo, parent_mergeinfo,
+ path_suffix, subpool, subpool));
else
path_tweaked_parent_mergeinfo = parent_mergeinfo;
Modified: subversion/trunk/subversion/libsvn_client/mergeinfo.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/mergeinfo.h?rev=1188161&r1=1188160&r2=1188161&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/mergeinfo.h (original)
+++ subversion/trunk/subversion/libsvn_client/mergeinfo.h Mon Oct 24 14:48:29 2011
@@ -357,17 +357,6 @@ svn_error_t *
svn_client__elide_mergeinfo_catalog(svn_mergeinfo_t mergeinfo_catalog,
apr_pool_t *pool);
-/* For each source path : rangelist pair in MERGEINFO, append REL_PATH to
- the source path and add the new source path : rangelist pair to
- ADJUSTED_MERGEINFO. The new source path and rangelist are both deep
- copies allocated in POOL. Neither ADJUSTED_MERGEINFO
- nor MERGEINFO should be NULL. */
-svn_error_t *
-svn_client__adjust_mergeinfo_source_paths(svn_mergeinfo_t adjusted_mergeinfo,
- const char *rel_path,
- svn_mergeinfo_t mergeinfo,
- apr_pool_t *pool);
-
/* Set *MERGEINFO_CHANGES to TRUE if LOCAL_ABSPATH has locally modified
mergeinfo, set *MERGEINFO_CHANGES to FALSE otherwise. */
svn_error_t *