You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by pb...@apache.org on 2011/09/21 16:00:42 UTC
svn commit: r1173650 - in /subversion/branches/1.7.x-r1173425: ./
subversion/libsvn_fs/ subversion/libsvn_fs_base/ subversion/libsvn_fs_fs/
Author: pburba
Date: Wed Sep 21 14:00:41 2011
New Revision: 1173650
URL: http://svn.apache.org/viewvc?rev=1173650&view=rev
Log:
On the 1.7.x-r1173425 branch: Merge r1173639 from ^/subversion/trunk.
Modified:
subversion/branches/1.7.x-r1173425/ (props changed)
subversion/branches/1.7.x-r1173425/subversion/libsvn_fs/fs-loader.h
subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/fs.c
subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/tree.c
subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/tree.h
subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/fs.c
subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/tree.c
subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/tree.h
Propchange: subversion/branches/1.7.x-r1173425/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Sep 21 14:00:41 2011
@@ -63,4 +63,4 @@
/subversion/branches/tree-conflicts:868291-873154
/subversion/branches/tree-conflicts-notify:873926-874008
/subversion/branches/uris-as-urls:1060426-1064427
-/subversion/trunk:1146013,1146121,1146219,1146222,1146274,1146492,1146555,1146606,1146620,1146684,1146781,1146832,1146834,1146870,1146899,1146904,1147293,1147309,1147882,1148071,1148083,1148094,1148131,1148374,1148424,1148566,1148588,1148853,1148877,1148882,1148936,1149105,1149141,1149160,1149228,1149240,1149343,1149371-1149372,1149377,1149398,1149401,1149539,1149572,1149627,1149675,1149701,1149713,1150242,1150254,1150260-1150261,1150266,1150302,1150327,1150368,1150372,1150441,1150506,1150812,1150853,1151036,1151177,1151610,1151906,1151911,1152129,1152140,1152189-1152190,1152267,1152282,1152286,1152726,1152809,1153138,1153141,1153416,1153799,1153807,1153968,1154009,1154023,1154115,1154119,1154121,1154144,1154155,1154159,1154165,1154215,1154225,1154273,1154461,1154717-1154718,1154733,1154908,1154982,1155015,1155044,1155124,1155131,1155160,1155313,1155334,1155391,1155404,1156085,1156098,1156216,1156218,1156312,1156527,1156717,1156721,1156750,1156827,1156838,1157416,1158187,115
8193-1158194,1158196,1158201,1158207,1158209-1158210,1158217,1158285,1158288,1158303,1158309,1158407,1158419,1158421,1158436,1158455,1158616-1158617,1158634,1158854,1158875,1158886,1158893,1158896,1158919,1158924,1158963,1159093,1159098,1159101,1159132,1159136,1159148,1159230,1159275,1159400,1159686,1159760,1159772,1160605,1160671,1160682,1160704-1160705,1160756,1161063,1161080,1161185,1161210,1161683,1161721,1162024,1162033,1162201,1162516,1162880,1163557,1163792,1163953,1164027,1164517,1164535,1164554,1164580,1164645,1164760,1164765,1166500,1166555,1166678,1167062,1167173,1167209,1167269,1167503,1169524,1169531,1169650,1173425
+/subversion/trunk:1146013,1146121,1146219,1146222,1146274,1146492,1146555,1146606,1146620,1146684,1146781,1146832,1146834,1146870,1146899,1146904,1147293,1147309,1147882,1148071,1148083,1148094,1148131,1148374,1148424,1148566,1148588,1148853,1148877,1148882,1148936,1149105,1149141,1149160,1149228,1149240,1149343,1149371-1149372,1149377,1149398,1149401,1149539,1149572,1149627,1149675,1149701,1149713,1150242,1150254,1150260-1150261,1150266,1150302,1150327,1150368,1150372,1150441,1150506,1150812,1150853,1151036,1151177,1151610,1151906,1151911,1152129,1152140,1152189-1152190,1152267,1152282,1152286,1152726,1152809,1153138,1153141,1153416,1153799,1153807,1153968,1154009,1154023,1154115,1154119,1154121,1154144,1154155,1154159,1154165,1154215,1154225,1154273,1154461,1154717-1154718,1154733,1154908,1154982,1155015,1155044,1155124,1155131,1155160,1155313,1155334,1155391,1155404,1156085,1156098,1156216,1156218,1156312,1156527,1156717,1156721,1156750,1156827,1156838,1157416,1158187,115
8193-1158194,1158196,1158201,1158207,1158209-1158210,1158217,1158285,1158288,1158303,1158309,1158407,1158419,1158421,1158436,1158455,1158616-1158617,1158634,1158854,1158875,1158886,1158893,1158896,1158919,1158924,1158963,1159093,1159098,1159101,1159132,1159136,1159148,1159230,1159275,1159400,1159686,1159760,1159772,1160605,1160671,1160682,1160704-1160705,1160756,1161063,1161080,1161185,1161210,1161683,1161721,1162024,1162033,1162201,1162516,1162880,1163557,1163792,1163953,1164027,1164517,1164535,1164554,1164580,1164645,1164760,1164765,1166500,1166555,1166678,1167062,1167173,1167209,1167269,1167503,1169524,1169531,1169650,1173425,1173639
Modified: subversion/branches/1.7.x-r1173425/subversion/libsvn_fs/fs-loader.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-r1173425/subversion/libsvn_fs/fs-loader.h?rev=1173650&r1=1173649&r2=1173650&view=diff
==============================================================================
--- subversion/branches/1.7.x-r1173425/subversion/libsvn_fs/fs-loader.h (original)
+++ subversion/branches/1.7.x-r1173425/subversion/libsvn_fs/fs-loader.h Wed Sep 21 14:00:41 2011
@@ -194,11 +194,6 @@ typedef struct fs_vtable_t
svn_error_t *(*bdb_set_errcall)(svn_fs_t *fs,
void (*handler)(const char *errpfx,
char *msg));
- svn_error_t *(*validate_mergeinfo)(svn_mergeinfo_t *validated_mergeinfo,
- svn_fs_t *fs,
- svn_mergeinfo_t mergeinfo,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
} fs_vtable_t;
Modified: subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/fs.c?rev=1173650&r1=1173649&r2=1173650&view=diff
==============================================================================
--- subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/fs.c (original)
+++ subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/fs.c Wed Sep 21 14:00:41 2011
@@ -496,7 +496,6 @@ static fs_vtable_t fs_vtable = {
svn_fs_base__get_lock,
svn_fs_base__get_locks,
base_bdb_set_errcall,
- svn_fs_base__validate_mergeinfo,
};
/* Where the format number is stored. */
Modified: subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/tree.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/tree.c?rev=1173650&r1=1173649&r2=1173650&view=diff
==============================================================================
--- subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/tree.c (original)
+++ subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/tree.c Wed Sep 21 14:00:41 2011
@@ -4955,128 +4955,6 @@ base_node_origin_rev(svn_revnum_t *revis
/* Mergeinfo Queries */
-/* Implements svn_fs_validate_mergeinfo. */
-svn_error_t *
-svn_fs_base__validate_mergeinfo(svn_mergeinfo_t *validated_mergeinfo,
- svn_fs_t *fs,
- svn_mergeinfo_t mergeinfo,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- svn_mergeinfo_t filtered_mergeinfo;
- apr_hash_t *rev_to_sources;
- apr_hash_index_t *hi;
- apr_pool_t *iterpool;
-
- /* A couple easy outs. */
- if (mergeinfo == NULL)
- {
- *validated_mergeinfo = NULL;
- return SVN_NO_ERROR;
- }
- else if (apr_hash_count(mergeinfo) == 0)
- {
- *validated_mergeinfo = apr_hash_make(result_pool);
- return SVN_NO_ERROR;
- }
-
- filtered_mergeinfo = apr_hash_make(scratch_pool);
- rev_to_sources = apr_hash_make(scratch_pool);
-
- /* Since svn_fs_check_path needs an svn_fs_root_t based on a revision,
- we convert MERGEINFO into a mapping of revisions to a hash of source
- paths for efficiency. */
- for (hi = apr_hash_first(scratch_pool, mergeinfo);
- hi;
- hi = apr_hash_next(hi))
- {
- const char *path = svn__apr_hash_index_key(hi);
- apr_array_header_t *rangelist = svn__apr_hash_index_val(hi);
- int i;
-
- for (i = 0; i < rangelist->nelts; i++)
- {
- svn_merge_range_t *range =
- APR_ARRAY_IDX(rangelist, i, svn_merge_range_t *);
- svn_revnum_t j;
-
- for (j = range->start + 1; j <= range->end; j++)
- {
- apr_hash_t *paths_for_rev =
- apr_hash_get(rev_to_sources, &j, sizeof(svn_revnum_t));
-
- /* No hash associated with this rev yet? */
- if (!paths_for_rev)
- {
- svn_revnum_t *rev = apr_palloc(scratch_pool, sizeof(*rev));
-
- *rev = j;
- paths_for_rev = apr_hash_make(scratch_pool);
- apr_hash_set(rev_to_sources, rev,
- sizeof(svn_revnum_t), paths_for_rev);
- }
-
- apr_hash_set(paths_for_rev, path, APR_HASH_KEY_STRING, path);
- }
- }
- }
-
- iterpool = svn_pool_create(scratch_pool);
-
- /* Validate the rev->source MERGEINFO equivalent hash, building the
- validated mergeinfo as we go. */
- for (hi = apr_hash_first(scratch_pool, rev_to_sources);
- hi;
- hi = apr_hash_next(hi))
- {
- const svn_revnum_t *rev = svn__apr_hash_index_key(hi);
- apr_hash_t *paths = svn__apr_hash_index_val(hi);
- apr_pool_t *inner_iterpool;
- apr_hash_index_t *hi2;
- svn_node_kind_t kind;
- svn_fs_root_t *mergeinfo_rev_root;
-
- svn_pool_clear(iterpool);
- inner_iterpool = svn_pool_create(iterpool);
-
- SVN_ERR(svn_fs_base__revision_root(&mergeinfo_rev_root, fs,
- *rev, iterpool));
-
- for (hi2 = apr_hash_first(iterpool, paths);
- hi2;
- hi2 = apr_hash_next(hi2))
- {
- const char *path = svn__apr_hash_index_key(hi2);
-
- svn_pool_clear(inner_iterpool);
- SVN_ERR(base_check_path(&kind, mergeinfo_rev_root,
- path, inner_iterpool));
- if (kind == svn_node_none)
- {
- apr_hash_set(paths, path, APR_HASH_KEY_STRING, NULL);
- }
- else
- {
- svn_mergeinfo_t good_mergeinfo_fragment;
- const char *mergeinfo_str =
- apr_psprintf(inner_iterpool, "%s:%ld", path, *rev);
-
- SVN_ERR(svn_mergeinfo_parse(&good_mergeinfo_fragment,
- mergeinfo_str, scratch_pool));
- SVN_ERR(svn_mergeinfo_merge(filtered_mergeinfo,
- good_mergeinfo_fragment,
- scratch_pool));
- }
- }
- svn_pool_destroy(inner_iterpool);
- }
-
- svn_pool_destroy(iterpool);
- *validated_mergeinfo = svn_mergeinfo_dup(filtered_mergeinfo, result_pool);
- return SVN_NO_ERROR;
-}
-
-
/* Examine directory NODE's immediately children for mergeinfo.
For those which have explicit mergeinfo, add their mergeinfo to
Modified: subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/tree.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/tree.h?rev=1173650&r1=1173649&r2=1173650&view=diff
==============================================================================
--- subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/tree.h (original)
+++ subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_base/tree.h Wed Sep 21 14:00:41 2011
@@ -91,14 +91,6 @@ svn_error_t *svn_fs_base__get_path_creat
trail_t *trail,
apr_pool_t *pool);
-/* Implements svn_fs_validate_mergeinfo. */
-svn_error_t *
-svn_fs_base__validate_mergeinfo(svn_mergeinfo_t *validated_mergeinfo,
- svn_fs_t *fs,
- svn_mergeinfo_t mergeinfo,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
#ifdef __cplusplus
}
Modified: subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/fs.c?rev=1173650&r1=1173649&r2=1173650&view=diff
==============================================================================
--- subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/fs.c (original)
+++ subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/fs.c Wed Sep 21 14:00:41 2011
@@ -159,7 +159,6 @@ static fs_vtable_t fs_vtable = {
svn_fs_fs__get_lock,
svn_fs_fs__get_locks,
fs_set_errcall,
- svn_fs_fs__validate_mergeinfo,
};
Modified: subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/tree.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/tree.c?rev=1173650&r1=1173649&r2=1173650&view=diff
==============================================================================
--- subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/tree.c (original)
+++ subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/tree.c Wed Sep 21 14:00:41 2011
@@ -3352,127 +3352,6 @@ assemble_history(svn_fs_t *fs,
/* mergeinfo queries */
-/* Implements svn_fs_validate_mergeinfo. */
-svn_error_t *
-svn_fs_fs__validate_mergeinfo(svn_mergeinfo_t *validated_mergeinfo,
- svn_fs_t *fs,
- svn_mergeinfo_t mergeinfo,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- svn_mergeinfo_t filtered_mergeinfo;
- apr_hash_t *rev_to_sources;
- apr_hash_index_t *hi;
- apr_pool_t *iterpool;
-
- /* A couple easy outs. */
- if (mergeinfo == NULL)
- {
- *validated_mergeinfo = NULL;
- return SVN_NO_ERROR;
- }
- else if (apr_hash_count(mergeinfo) == 0)
- {
- *validated_mergeinfo = apr_hash_make(result_pool);
- return SVN_NO_ERROR;
- }
-
- filtered_mergeinfo = apr_hash_make(scratch_pool);
- rev_to_sources = apr_hash_make(scratch_pool);
-
- /* Since svn_fs_check_path needs an svn_fs_root_t based on a revision,
- we convert MERGEINFO into a mapping of revisions to a hash of source
- paths for efficiency. */
- for (hi = apr_hash_first(scratch_pool, mergeinfo);
- hi;
- hi = apr_hash_next(hi))
- {
- const char *path = svn__apr_hash_index_key(hi);
- apr_array_header_t *rangelist = svn__apr_hash_index_val(hi);
- int i;
-
- for (i = 0; i < rangelist->nelts; i++)
- {
- svn_merge_range_t *range =
- APR_ARRAY_IDX(rangelist, i, svn_merge_range_t *);
- svn_revnum_t j;
-
- for (j = range->start + 1; j <= range->end; j++)
- {
- apr_hash_t *paths_for_rev =
- apr_hash_get(rev_to_sources, &j, sizeof(svn_revnum_t));
-
- /* No hash associated with this rev yet? */
- if (!paths_for_rev)
- {
- svn_revnum_t *rev = apr_palloc(scratch_pool, sizeof(*rev));
-
- *rev = j;
- paths_for_rev = apr_hash_make(scratch_pool);
- apr_hash_set(rev_to_sources, rev,
- sizeof(svn_revnum_t), paths_for_rev);
- }
-
- apr_hash_set(paths_for_rev, path, APR_HASH_KEY_STRING, path);
- }
- }
- }
-
- iterpool = svn_pool_create(scratch_pool);
-
- /* Validate the rev->source MERGEINFO equivalent hash, building the
- validated mergeinfo as we go. */
- for (hi = apr_hash_first(scratch_pool, rev_to_sources);
- hi;
- hi = apr_hash_next(hi))
- {
- const svn_revnum_t *rev = svn__apr_hash_index_key(hi);
- apr_hash_t *paths = svn__apr_hash_index_val(hi);
- apr_pool_t *inner_iterpool;
- apr_hash_index_t *hi2;
- svn_node_kind_t kind;
- svn_fs_root_t *mergeinfo_rev_root;
-
- svn_pool_clear(iterpool);
- inner_iterpool = svn_pool_create(iterpool);
-
- SVN_ERR(svn_fs_fs__revision_root(&mergeinfo_rev_root, fs,
- *rev, iterpool));
-
- for (hi2 = apr_hash_first(iterpool, paths);
- hi2;
- hi2 = apr_hash_next(hi2))
- {
- const char *path = svn__apr_hash_index_key(hi2);
-
- svn_pool_clear(inner_iterpool);
- SVN_ERR(svn_fs_fs__check_path(&kind, mergeinfo_rev_root,
- path, inner_iterpool));
- if (kind == svn_node_none)
- {
- apr_hash_set(paths, path, APR_HASH_KEY_STRING, NULL);
- }
- else
- {
- svn_mergeinfo_t good_mergeinfo_fragment;
- const char *mergeinfo_str =
- apr_psprintf(inner_iterpool, "%s:%ld", path, *rev);
-
- SVN_ERR(svn_mergeinfo_parse(&good_mergeinfo_fragment,
- mergeinfo_str, scratch_pool));
- SVN_ERR(svn_mergeinfo_merge(filtered_mergeinfo,
- good_mergeinfo_fragment,
- scratch_pool));
- }
- }
- svn_pool_destroy(inner_iterpool);
- }
-
- svn_pool_destroy(iterpool);
- *validated_mergeinfo = svn_mergeinfo_dup(filtered_mergeinfo, result_pool);
- return SVN_NO_ERROR;
-}
-
/* DIR_DAG is a directory DAG node which has mergeinfo in its
descendants. This function iterates over its children. For each
child with immediate mergeinfo, it adds its mergeinfo to
Modified: subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/tree.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/tree.h?rev=1173650&r1=1173649&r2=1173650&view=diff
==============================================================================
--- subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/tree.h (original)
+++ subversion/branches/1.7.x-r1173425/subversion/libsvn_fs_fs/tree.h Wed Sep 21 14:00:41 2011
@@ -71,14 +71,6 @@ svn_fs_fs__node_created_rev(svn_revnum_t
const char *path,
apr_pool_t *pool);
-/* Implements svn_fs_validate_mergeinfo. */
-svn_error_t *
-svn_fs_fs__validate_mergeinfo(svn_mergeinfo_t *validated_mergeinfo,
- svn_fs_t *fs,
- svn_mergeinfo_t mergeinfo,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
#ifdef __cplusplus
}
#endif /* __cplusplus */