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/25 19:29:00 UTC
svn commit: r1188814 - in
/subversion/branches/showing-merge-info/subversion/svn: cl.h
mergeinfo-cmd.c util.c
Author: julianfoad
Date: Tue Oct 25 17:29:00 2011
New Revision: 1188814
URL: http://svn.apache.org/viewvc?rev=1188814&view=rev
Log:
On the 'showing-merge-info' branch: Move utility functions.
* subversion/svn/cl.h,
subversion/svn/util.c
(svn_cl__target_for_display, svn_cl__find_merge_source_branch): New, moved
and renamed from ...
* subversion/svn/mergeinfo-cmd.c
(target_for_display, find_source_branch): ... here.
(svn_cl__mergeinfo): Adjust calls.
Modified:
subversion/branches/showing-merge-info/subversion/svn/cl.h
subversion/branches/showing-merge-info/subversion/svn/mergeinfo-cmd.c
subversion/branches/showing-merge-info/subversion/svn/util.c
Modified: subversion/branches/showing-merge-info/subversion/svn/cl.h
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/cl.h?rev=1188814&r1=1188813&r2=1188814&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/cl.h (original)
+++ subversion/branches/showing-merge-info/subversion/svn/cl.h Tue Oct 25 17:29:00 2011
@@ -833,6 +833,19 @@ svn_cl__local_style_skip_ancestor(const
const char *path,
apr_pool_t *pool);
+/* */
+const char *
+svn_cl__target_for_display(const svn_client_target_t *target,
+ apr_pool_t *pool);
+
+/* Find the preferred "parent" branch. At the moment, returns the
+ * copyfrom path, assumed still to exist at the same path in head. */
+svn_error_t *
+svn_cl__find_merge_source_branch(svn_client_target_t **source_p,
+ svn_client_target_t *target,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/branches/showing-merge-info/subversion/svn/mergeinfo-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/mergeinfo-cmd.c?rev=1188814&r1=1188813&r2=1188814&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/mergeinfo-cmd.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/mergeinfo-cmd.c Tue Oct 25 17:29:00 2011
@@ -85,35 +85,6 @@ print_log_rev(const svn_client_merged_re
return SVN_NO_ERROR;
}
-/* */
-static svn_boolean_t
-location_is_resolved(const svn_client_target_t *location)
-{
- return (location->repos_uuid != NULL);
-}
-
-/* */
-static const char *
-target_for_display(const svn_client_target_t *target,
- apr_pool_t *pool)
-{
- SVN_ERR_ASSERT_NO_RETURN(location_is_resolved(target));
- if (target->revision.kind == svn_opt_revision_working)
- {
- SVN_ERR_ASSERT_NO_RETURN(target->peg_revision.kind == svn_opt_revision_working);
- return apr_psprintf(pool, "^/%s (working copy)",
- target->repos_relpath);
- }
- if (target->revision.kind == svn_opt_revision_base)
- {
- SVN_ERR_ASSERT_NO_RETURN(target->peg_revision.kind == svn_opt_revision_base);
- return apr_psprintf(pool, "^/%s (wc base)",
- target->repos_relpath);
- }
- return apr_psprintf(pool, "^/%s (r%ld)",
- target->repos_relpath, target->repos_revnum);
-}
-
/* Return TRUE iff SOURCE and TARGET refer to the same repository branch. */
static svn_boolean_t
targets_are_same_branch(svn_client_target_t *source,
@@ -123,32 +94,6 @@ targets_are_same_branch(svn_client_targe
return (strcmp(source->repos_relpath, target->repos_relpath) == 0);
}
-/* Find the preferred "parent" branch. At the moment, returns the
- * copyfrom path (at peg rev r1170000). */
-static svn_error_t *
-find_source_branch(svn_client_target_t **source_p,
- svn_client_target_t *target,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool)
-{
- apr_array_header_t *suggestions;
- const char *copyfrom_url;
- svn_opt_revision_t peg_revision = { svn_opt_revision_number, { 1170000 } };
-
- /* This isn't properly doc'd, but the first result it gives is the
- * copyfrom source URL. */
- SVN_ERR(svn_client_suggest_merge_sources(&suggestions,
- target->path_or_url,
- &target->peg_revision,
- ctx, pool));
- copyfrom_url = APR_ARRAY_IDX(suggestions, 0, const char *);
-
- SVN_ERR(svn_client__target(source_p, copyfrom_url, &peg_revision, pool));
- (*source_p)->revision.kind = svn_opt_revision_unspecified;
-
- return SVN_NO_ERROR;
-}
-
/* This implements the `svn_opt_subcommand_t' interface. */
svn_error_t *
svn_cl__mergeinfo(apr_getopt_t *os,
@@ -207,13 +152,13 @@ svn_cl__mergeinfo(apr_getopt_t *os,
else
{
printf("Assuming source branch is copied-from source of target branch.\n");
- SVN_ERR(find_source_branch(&source, target, ctx, pool));
+ SVN_ERR(svn_cl__find_merge_source_branch(&source, target, ctx, pool));
}
SVN_ERR(svn_client__resolve_target_location(source, NULL, ctx, pool));
- printf("Source branch: %s\n", target_for_display(source, pool));
- printf("Target branch: %s\n", target_for_display(target, pool));
+ printf("Source branch: %s\n", svn_cl__target_for_display(source, pool));
+ printf("Target branch: %s\n", svn_cl__target_for_display(target, pool));
if (targets_are_same_branch(source, target, pool))
{
Modified: subversion/branches/showing-merge-info/subversion/svn/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/svn/util.c?rev=1188814&r1=1188813&r2=1188814&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/svn/util.c (original)
+++ subversion/branches/showing-merge-info/subversion/svn/util.c Tue Oct 25 17:29:00 2011
@@ -1419,3 +1419,55 @@ svn_cl__local_style_skip_ancestor(const
return svn_dirent_local_style(relpath ? relpath : path, pool);
}
+
+/* */
+static svn_boolean_t
+location_is_resolved(const svn_client_target_t *location)
+{
+ return (location->repos_uuid != NULL);
+}
+
+const char *
+svn_cl__target_for_display(const svn_client_target_t *target,
+ apr_pool_t *pool)
+{
+ SVN_ERR_ASSERT_NO_RETURN(location_is_resolved(target));
+ if (target->revision.kind == svn_opt_revision_working)
+ {
+ SVN_ERR_ASSERT_NO_RETURN(target->peg_revision.kind == svn_opt_revision_working);
+ return apr_psprintf(pool, "^/%s (working copy)",
+ target->repos_relpath);
+ }
+ if (target->revision.kind == svn_opt_revision_base)
+ {
+ SVN_ERR_ASSERT_NO_RETURN(target->peg_revision.kind == svn_opt_revision_base);
+ return apr_psprintf(pool, "^/%s (wc base)",
+ target->repos_relpath);
+ }
+ return apr_psprintf(pool, "^/%s (r%ld)",
+ target->repos_relpath, target->repos_revnum);
+}
+
+svn_error_t *
+svn_cl__find_merge_source_branch(svn_client_target_t **source_p,
+ svn_client_target_t *target,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ apr_array_header_t *suggestions;
+ const char *copyfrom_url;
+ svn_opt_revision_t peg_revision = { svn_opt_revision_head, { 0 } };
+
+ /* This isn't properly doc'd, but the first result it gives is the
+ * copyfrom source URL. */
+ SVN_ERR(svn_client_suggest_merge_sources(&suggestions,
+ target->path_or_url,
+ &target->peg_revision,
+ ctx, pool));
+ copyfrom_url = APR_ARRAY_IDX(suggestions, 0, const char *);
+
+ SVN_ERR(svn_client__target(source_p, copyfrom_url, &peg_revision, pool));
+ (*source_p)->revision.kind = svn_opt_revision_unspecified;
+
+ return SVN_NO_ERROR;
+}