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 2012/07/04 11:11:41 UTC
svn commit: r1357186 - in /subversion/trunk/subversion/libsvn_client:
client.h log.c merge.c mergeinfo.c
Author: rhuijben
Date: Wed Jul 4 09:11:40 2012
New Revision: 1357186
URL: http://svn.apache.org/viewvc?rev=1357186&view=rev
Log:
Make two libsvn_client merge helper functions conform a bit more to our
current standards.
* subversion/libsvn_client/client.h
(svn_client__get_copy_source): Move output arguments to the front. Rename
arguments to match current recommended naming. Split pool usage.
* subversion/libsvn_client/log.c
(svn_client__get_copy_source): Update argument names. Switch pool usage.
* subversion/libsvn_client/merge.c
(make_conflict_versions): Pass uuid to newer constructor.
(normalize_merge_sources_internal): Update caller. Rename variables to
avoid doing unneeded checks. Pass scratch pool.
* subversion/libsvn_client/mergeinfo.c
(svn_client_suggest_merge_sources): Update caller.
Modified:
subversion/trunk/subversion/libsvn_client/client.h
subversion/trunk/subversion/libsvn_client/log.c
subversion/trunk/subversion/libsvn_client/merge.c
subversion/trunk/subversion/libsvn_client/mergeinfo.c
Modified: subversion/trunk/subversion/libsvn_client/client.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/client.h?rev=1357186&r1=1357185&r2=1357186&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/client.h (original)
+++ subversion/trunk/subversion/libsvn_client/client.h Wed Jul 4 09:11:40 2012
@@ -87,16 +87,18 @@ svn_client__get_revision_number(svn_revn
const svn_opt_revision_t *revision,
apr_pool_t *scratch_pool);
-/* Set *COPYFROM_PATH and *COPYFROM_REV to the path (without initial '/')
- and revision that served as the source of the copy from which PATH_OR_URL
- at REVISION was created, or NULL and SVN_INVALID_REVNUM (respectively) if
- PATH_OR_URL at REVISION was not the result of a copy operation. */
-svn_error_t *svn_client__get_copy_source(const char *path_or_url,
- const svn_opt_revision_t *revision,
- const char **copyfrom_path,
- svn_revnum_t *copyfrom_rev,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool);
+/* Set *ORIGINAL_REPOS_RELPATH and *ORIGINAL_REVISION to the original location
+ that served as the source of the copy from which PATH_OR_URL at REVISION was
+ created, or NULL and SVN_INVALID_REVNUM (respectively) if PATH_OR_URL at
+ REVISION was not the result of a copy operation. */
+svn_error_t *
+svn_client__get_copy_source(const char **original_repos_relpath,
+ svn_revnum_t *original_revision,
+ const char *path_or_url,
+ const svn_opt_revision_t *revision,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
/* Set *START_URL and *START_REVISION (and maybe *END_URL
and *END_REVISION) to the revisions and repository URLs of one
Modified: subversion/trunk/subversion/libsvn_client/log.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/log.c?rev=1357186&r1=1357185&r2=1357186&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/log.c (original)
+++ subversion/trunk/subversion/libsvn_client/log.c Wed Jul 4 09:11:40 2012
@@ -90,23 +90,24 @@ copyfrom_info_receiver(svn_location_segm
}
svn_error_t *
-svn_client__get_copy_source(const char *path_or_url,
+svn_client__get_copy_source(const char **original_repos_relpath,
+ svn_revnum_t *original_revision,
+ const char *path_or_url,
const svn_opt_revision_t *revision,
- const char **copyfrom_path,
- svn_revnum_t *copyfrom_rev,
svn_client_ctx_t *ctx,
- apr_pool_t *pool)
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
svn_error_t *err;
copyfrom_info_t copyfrom_info = { 0 };
- apr_pool_t *sesspool = svn_pool_create(pool);
+ apr_pool_t *sesspool = svn_pool_create(scratch_pool);
svn_ra_session_t *ra_session;
svn_client__pathrev_t *at_loc;
copyfrom_info.is_first = TRUE;
copyfrom_info.path = NULL;
copyfrom_info.rev = SVN_INVALID_REVNUM;
- copyfrom_info.pool = pool;
+ copyfrom_info.pool = result_pool;
SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &at_loc,
path_or_url, NULL,
@@ -119,7 +120,7 @@ svn_client__get_copy_source(const char *
err = svn_ra_get_location_segments(ra_session, "", at_loc->rev, at_loc->rev,
SVN_INVALID_REVNUM,
copyfrom_info_receiver, ©from_info,
- pool);
+ scratch_pool);
svn_pool_destroy(sesspool);
@@ -133,14 +134,14 @@ svn_client__get_copy_source(const char *
svn_error_clear(err);
err = SVN_NO_ERROR;
- *copyfrom_path = NULL;
- *copyfrom_rev = SVN_INVALID_REVNUM;
+ *original_repos_relpath = NULL;
+ *original_revision = SVN_INVALID_REVNUM;
}
return svn_error_trace(err);
}
- *copyfrom_path = copyfrom_info.path;
- *copyfrom_rev = copyfrom_info.rev;
+ *original_repos_relpath = copyfrom_info.path;
+ *original_revision = copyfrom_info.rev;
return SVN_NO_ERROR;
}
Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1357186&r1=1357185&r2=1357186&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Wed Jul 4 09:11:40 2012
@@ -597,13 +597,15 @@ make_conflict_versions(const svn_wc_conf
right_relpath = svn_client__pathrev_relpath(merge_source->loc2,
pool);
- *left = svn_wc_conflict_version_create(
+ *left = svn_wc_conflict_version_create2(
merge_source->loc1->repos_root_url,
+ merge_source->loc1->repos_uuid,
svn_relpath_join(left_relpath, child, pool),
merge_source->loc1->rev, node_kind, pool);
- *right = svn_wc_conflict_version_create(
+ *right = svn_wc_conflict_version_create2(
merge_source->loc2->repos_root_url,
+ merge_source->loc2->repos_uuid,
svn_relpath_join(right_relpath, child, pool),
merge_source->loc2->rev, node_kind, pool);
@@ -6574,8 +6576,9 @@ normalize_merge_sources_internal(apr_arr
{
svn_location_segment_t *segment2 =
APR_ARRAY_IDX(segments, 1, svn_location_segment_t *);
- const char *copyfrom_path, *segment_url;
- svn_revnum_t copyfrom_rev;
+ const char *segment_url;
+ const char *original_repos_relpath;
+ svn_revnum_t original_revision;
svn_opt_revision_t range_start_rev;
range_start_rev.kind = svn_opt_revision_number;
range_start_rev.value.number = segment2->range_start;
@@ -6583,24 +6586,23 @@ normalize_merge_sources_internal(apr_arr
segment_url = svn_path_url_add_component2(
source_loc->repos_root_url, segment2->path,
scratch_pool);
- SVN_ERR(svn_client__get_copy_source(segment_url,
- &range_start_rev,
- ©from_path,
- ©from_rev,
- ctx, result_pool));
+ SVN_ERR(svn_client__get_copy_source(&original_repos_relpath,
+ &original_revision,
+ segment_url,
+ &range_start_rev, ctx,
+ result_pool, scratch_pool));
/* Got copyfrom data? Fix up the first segment to cover
back to COPYFROM_REV + 1, and then prepend a new
segment covering just COPYFROM_REV. */
- if (copyfrom_path && SVN_IS_VALID_REVNUM(copyfrom_rev))
+ if (original_repos_relpath)
{
svn_location_segment_t *new_segment =
apr_pcalloc(result_pool, sizeof(*new_segment));
/* Skip the leading '/'. */
- new_segment->path = (*copyfrom_path == '/')
- ? copyfrom_path + 1 : copyfrom_path;
- new_segment->range_start = copyfrom_rev;
- new_segment->range_end = copyfrom_rev;
- segment->range_start = copyfrom_rev + 1;
+ new_segment->path = original_repos_relpath;
+ new_segment->range_start = original_revision;
+ new_segment->range_end = original_revision;
+ segment->range_start = original_revision + 1;
svn_sort__array_insert(&new_segment, segments, 0);
}
}
Modified: subversion/trunk/subversion/libsvn_client/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/mergeinfo.c?rev=1357186&r1=1357185&r2=1357186&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/mergeinfo.c (original)
+++ subversion/trunk/subversion/libsvn_client/mergeinfo.c Wed Jul 4 09:11:40 2012
@@ -2095,9 +2095,9 @@ svn_client_suggest_merge_sources(apr_arr
mergeinfo = NULL;
}
- SVN_ERR(svn_client__get_copy_source(path_or_url, peg_revision,
- ©from_path, ©from_rev,
- ctx, pool));
+ SVN_ERR(svn_client__get_copy_source(©from_path, ©from_rev,
+ path_or_url, peg_revision, ctx,
+ pool, pool));
if (copyfrom_path)
{
APR_ARRAY_PUSH(list, const char *) =