You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/04/27 20:46:05 UTC
svn commit: r1097203 - in /subversion/trunk/subversion: svn/cl.h
svn/info-cmd.c svn/status.c svn/tree-conflicts.c svn/tree-conflicts.h
svn/util.c tests/cmdline/stat_tests.py
Author: hwright
Date: Wed Apr 27 18:46:05 2011
New Revision: 1097203
URL: http://svn.apache.org/viewvc?rev=1097203&view=rev
Log:
Update the commandline client tree conflict output to use
svn_wc_conflict_description2_t structs. To do this, we resurrect an old
utility function removed without explanation in r1089593.
* subversion/tests/cmdline/stat_tests.py
(status_with_tree_conflicts): Reorder expected output.
* subversion/svn/cl.h
(svn_cl__cd_to_cd2): New.
* subversion/svn/util.c
(svn_cl__cd_to_cd2): New (well, resurrected from libsvn_wc@1089592).
* subversion/svn/status.c
(print_status): Convert old conflict descriptor to new.
* subversion/svn/info-cmd.c
(print_info_xml, print_info): Same.
* subversion/svn/tree-conflicts.c:
Switch from svn_wc_conflict_description_t to svn_wc_conflict_description2_t.
* subversion/svn/tree-conflicts.h
(svn_cl__get_human_readable_tree_conflict_description,
svn_cl__append_tree_conflict_info_xml): Update param types as above.
Modified:
subversion/trunk/subversion/svn/cl.h
subversion/trunk/subversion/svn/info-cmd.c
subversion/trunk/subversion/svn/status.c
subversion/trunk/subversion/svn/tree-conflicts.c
subversion/trunk/subversion/svn/tree-conflicts.h
subversion/trunk/subversion/svn/util.c
subversion/trunk/subversion/tests/cmdline/stat_tests.py
Modified: subversion/trunk/subversion/svn/cl.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/cl.h?rev=1097203&r1=1097202&r2=1097203&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/cl.h (original)
+++ subversion/trunk/subversion/svn/cl.h Wed Apr 27 18:46:05 2011
@@ -809,6 +809,11 @@ svn_cl__opt_parse_path(svn_opt_revision_
svn_error_t *
svn_cl__assert_homogeneous_target_type(const apr_array_header_t *targets);
+/* Temp function for updating output functions. */
+svn_wc_conflict_description2_t *
+svn_cl__cd_to_cd2(const svn_wc_conflict_description_t *conflict,
+ apr_pool_t *result_pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/trunk/subversion/svn/info-cmd.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/info-cmd.c?rev=1097203&r1=1097202&r2=1097203&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/info-cmd.c (original)
+++ subversion/trunk/subversion/svn/info-cmd.c Wed Apr 27 18:46:05 2011
@@ -230,7 +230,9 @@ print_info_xml(void *baton,
}
if (info->tree_conflict)
- SVN_ERR(svn_cl__append_tree_conflict_info_xml(sb, info->tree_conflict,
+ SVN_ERR(svn_cl__append_tree_conflict_info_xml(sb,
+ svn_cl__cd_to_cd2(
+ info->tree_conflict, pool),
pool));
/* "</entry>" */
@@ -456,7 +458,7 @@ print_info(void *baton,
const char *src_right_version;
SVN_ERR(svn_cl__get_human_readable_tree_conflict_description(
- &desc, info->tree_conflict, pool));
+ &desc, svn_cl__cd_to_cd2(info->tree_conflict, pool), pool));
src_left_version =
svn_cl__node_description(info->tree_conflict->src_left_version,
Modified: subversion/trunk/subversion/svn/status.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/status.c?rev=1097203&r1=1097202&r2=1097203&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/status.c (original)
+++ subversion/trunk/subversion/svn/status.c Wed Apr 27 18:46:05 2011
@@ -180,7 +180,7 @@ print_status(const char *path,
tree_status_code = 'C';
SVN_ERR(svn_cl__get_human_readable_tree_conflict_description(
&desc,
- old_tree_conflict,
+ svn_cl__cd_to_cd2(old_tree_conflict, pool),
pool));
tree_desc_line = apr_psprintf(pool, "\n > %s", desc);
(*tree_conflicts)++;
Modified: subversion/trunk/subversion/svn/tree-conflicts.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/tree-conflicts.c?rev=1097203&r1=1097202&r2=1097203&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/tree-conflicts.c (original)
+++ subversion/trunk/subversion/svn/tree-conflicts.c Wed Apr 27 18:46:05 2011
@@ -80,14 +80,14 @@ static const svn_token_map_t map_conflic
/* Return a localized string representation of CONFLICT->action. */
static const char *
-action_str(const svn_wc_conflict_description_t *conflict)
+action_str(const svn_wc_conflict_description2_t *conflict)
{
return _(svn_token__to_word(map_conflict_action_human, conflict->action));
}
/* Return a localized string representation of CONFLICT->reason. */
static const char *
-reason_str(const svn_wc_conflict_description_t *conflict)
+reason_str(const svn_wc_conflict_description2_t *conflict)
{
return _(svn_token__to_word(map_conflict_reason_human, conflict->reason));
}
@@ -96,7 +96,7 @@ reason_str(const svn_wc_conflict_descrip
svn_error_t *
svn_cl__get_human_readable_tree_conflict_description(
const char **desc,
- const svn_wc_conflict_description_t *conflict,
+ const svn_wc_conflict_description2_t *conflict,
apr_pool_t *pool)
{
const char *action, *reason, *operation;
@@ -117,7 +117,7 @@ svn_cl__get_human_readable_tree_conflict
static svn_error_t *
add_conflict_version_xml(svn_stringbuf_t **pstr,
const char *side,
- svn_wc_conflict_version_t *version,
+ const svn_wc_conflict_version_t *version,
apr_pool_t *pool)
{
apr_hash_t *att_hash = apr_hash_make(pool);
@@ -150,14 +150,14 @@ add_conflict_version_xml(svn_stringbuf_t
svn_error_t *
svn_cl__append_tree_conflict_info_xml(
svn_stringbuf_t *str,
- const svn_wc_conflict_description_t *conflict,
+ const svn_wc_conflict_description2_t *conflict,
apr_pool_t *pool)
{
apr_hash_t *att_hash = apr_hash_make(pool);
const char *tmp;
apr_hash_set(att_hash, "victim", APR_HASH_KEY_STRING,
- svn_dirent_basename(conflict->path, pool));
+ svn_dirent_basename(conflict->local_abspath, pool));
apr_hash_set(att_hash, "kind", APR_HASH_KEY_STRING,
svn_cl__node_kind_str_xml(conflict->node_kind));
Modified: subversion/trunk/subversion/svn/tree-conflicts.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/tree-conflicts.h?rev=1097203&r1=1097202&r2=1097203&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/tree-conflicts.h (original)
+++ subversion/trunk/subversion/svn/tree-conflicts.h Wed Apr 27 18:46:05 2011
@@ -48,7 +48,7 @@ extern "C" {
svn_error_t *
svn_cl__get_human_readable_tree_conflict_description(
const char **desc,
- const svn_wc_conflict_description_t *conflict,
+ const svn_wc_conflict_description2_t *conflict,
apr_pool_t *pool);
/**
@@ -58,7 +58,7 @@ svn_cl__get_human_readable_tree_conflict
svn_error_t *
svn_cl__append_tree_conflict_info_xml(
svn_stringbuf_t *str,
- const svn_wc_conflict_description_t *conflict,
+ const svn_wc_conflict_description2_t *conflict,
apr_pool_t *pool);
#ifdef __cplusplus
Modified: subversion/trunk/subversion/svn/util.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/util.c?rev=1097203&r1=1097202&r2=1097203&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/util.c (original)
+++ subversion/trunk/subversion/svn/util.c Wed Apr 27 18:46:05 2011
@@ -1352,3 +1352,60 @@ svn_cl__assert_homogeneous_target_type(c
"targets"));
return err;
}
+
+svn_wc_conflict_description2_t *
+svn_cl__cd_to_cd2(const svn_wc_conflict_description_t *conflict,
+ apr_pool_t *result_pool)
+{
+ svn_wc_conflict_description2_t *new_conflict;
+
+ if (conflict == NULL)
+ return NULL;
+
+ new_conflict = apr_pcalloc(result_pool, sizeof(*new_conflict));
+
+ svn_error_clear(
+ svn_dirent_get_absolute(&new_conflict->local_abspath, conflict->path,
+ result_pool));
+ new_conflict->node_kind = conflict->node_kind;
+ new_conflict->kind = conflict->kind;
+ new_conflict->action = conflict->action;
+ new_conflict->reason = conflict->reason;
+ if (conflict->src_left_version)
+ new_conflict->src_left_version =
+ svn_wc_conflict_version_dup(conflict->src_left_version, result_pool);
+ if (conflict->src_right_version)
+ new_conflict->src_right_version =
+ svn_wc_conflict_version_dup(conflict->src_right_version, result_pool);
+
+ switch (conflict->kind)
+ {
+ case svn_wc_conflict_kind_property:
+ new_conflict->property_name = apr_pstrdup(result_pool,
+ conflict->property_name);
+ /* Falling through. */
+
+ case svn_wc_conflict_kind_text:
+ new_conflict->is_binary = conflict->is_binary;
+ new_conflict->mime_type = conflict->mime_type
+ ? apr_pstrdup(result_pool, conflict->mime_type)
+ : NULL;
+ new_conflict->base_abspath = apr_pstrdup(result_pool,
+ conflict->base_file);
+ new_conflict->their_abspath = apr_pstrdup(result_pool,
+ conflict->their_file);
+ new_conflict->my_abspath = apr_pstrdup(result_pool,
+ conflict->my_file);
+ new_conflict->merged_file = conflict->merged_file
+ ? apr_pstrdup(result_pool,
+ conflict->merged_file)
+ : NULL;
+ break;
+
+ case svn_wc_conflict_kind_tree:
+ new_conflict->operation = conflict->operation;
+ break;
+ }
+
+ return new_conflict;
+}
Modified: subversion/trunk/subversion/tests/cmdline/stat_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/stat_tests.py?rev=1097203&r1=1097202&r2=1097203&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/stat_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/stat_tests.py Wed Apr 27 18:46:05 2011
@@ -1725,10 +1725,10 @@ def status_with_tree_conflicts(sbox):
# check status of G
expected = svntest.verify.UnorderedOutput(
- ["D C %s\n" % pi,
- " > local delete, incoming edit upon update\n",
- "A + C %s\n" % rho,
+ ["A + C %s\n" % rho,
" > local edit, incoming delete upon update\n",
+ "D C %s\n" % pi,
+ " > local delete, incoming edit upon update\n",
"! C %s\n" % tau,
" > local delete, incoming delete upon update\n",
"Summary of conflicts:\n",