On Wed, Apr 7, 2010 at 3:05 AM, <gstein_at_apache.org> wrote:
> Author: gstein
> Date: Wed Apr 7 07:05:28 2010
> New Revision: 931449
>
> URL: http://svn.apache.org/viewvc?rev=931449&view=rev
> Log:
> Fix the inheritance handling for entry->copyfrom_*. The mapping code was
> not properly considering the copyfrom data between "this" node and the
> ancestor nodes.
>
> This fixes merge_tests 34 and 134 (broken by r930162), but proceeds to
> break diff_tests 41 and merge_tests 8. Two steps forward...
>
> * subversion/libsvn_wc/entries.c:
> (read_entries_new): rework the logic that analyzes copyfrom information
> on "this" node and the ancestor nodes. it was not (properly)
> considering that an ancestor may imply "this" node is part of a copy.
>
> * subversion/tests/cmdline/switch_tests.py:
> (tree_conflicts_on_switch_2_1): note that we fail because an (A)dd is
> incorrectly reported as a (M)odify, due to issues in wc_db.
> (test_list): mark the above as an XFail
>
> * subversion/tests/cmdline/update_tests.py:
> (tree_conflicts_on_update_2_1, tree_conflict_uc2_schedule_re_add): leave
> comments about the breakage due to wc_db issues.
> (test_list): mark the above two tests as XFail
>
> Modified:
> subversion/trunk/subversion/libsvn_wc/entries.c
> subversion/trunk/subversion/tests/cmdline/switch_tests.py
> subversion/trunk/subversion/tests/cmdline/update_tests.py
>
> Modified: subversion/trunk/subversion/libsvn_wc/entries.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/entries.c?rev=931449&r1=931448&r2=931449&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_wc/entries.c (original)
> +++ subversion/trunk/subversion/libsvn_wc/entries.c Wed Apr 7 07:05:28 2010
> @@ -727,6 +727,8 @@ read_entries_new(apr_hash_t **result_ent
> || status == svn_wc__db_status_obstructed_add)
> {
> svn_wc__db_status_t work_status;
> + const char *op_root_abspath;
> + const char *scanned_original_relpath;
> svn_revnum_t original_revision;
>
> /* For child nodes, pick up the parent's revision. */
> @@ -817,17 +819,19 @@ read_entries_new(apr_hash_t **result_ent
> }
>
> SVN_ERR(svn_wc__db_scan_addition(&work_status,
> - NULL,
> + &op_root_abspath,
> &repos_relpath,
> &entry->repos,
> &entry->uuid,
> - NULL, NULL, NULL, &original_revision,
> + &scanned_original_relpath,
> + NULL, NULL, /* original_root|uuid */
> + &original_revision,
> db,
> entry_abspath,
> result_pool, iterpool));
> -
> + SVN_DBG(("entry: work_status=%d cmt_rev=%ld relpath='%s'\n", work_status, entry->cmt_rev, original_repos_relpath));
^^^^^
Hi Greg - looks like you left a scalpel in the patient.
Paul
Received on 2010-04-07 17:30:55 CEST