On Tue, 05 Jun 2007, Kamesh Jayachandran wrote:
...
> [[[
> Make merge_tests.py's 'detect_copy_src_for_target_with_multiple_ancestors' 
> pass.
> 
> * subversion/libsvn_client/log.c
>     include "svn_sorts.h".
      ^
Capitalize.
>     (copyfrom_info_receiver): Sort changed_paths based on path. Iterate 
>     from last to first and check for the copy source.
> 
> * subversion/tests/cmdline/merge_tests.py
>    (detect_copy_src_for_target_with_multiple_ancestors):
>     Fix for merge range notifications.
I'm unable follow this description without reading the patch.  Perhaps
a comparsion including what was wrong before would help.
...
> Patch by: kameshj
You can drop this "Patch by" contribulyzer stuff when committing
yourself, of course.  :-)
> Index: subversion/libsvn_client/log.c
> ===================================================================
> --- subversion/libsvn_client/log.c	(revision 25291)
> +++ subversion/libsvn_client/log.c	(working copy)
> @@ -33,6 +33,7 @@
>  #include "svn_client.h"
>  #include "svn_error.h"
>  #include "svn_path.h"
> +#include "svn_sorts.h"
>  
>  #include "svn_private_config.h"
>  #include "private/svn_wc_private.h"
> @@ -112,17 +113,23 @@
>  
>    if (changed_paths)
>      {
> -      apr_hash_index_t *hi;
> -      char *path;
> +      int i;
> +      const char *path;
>        svn_log_changed_path_t *changed_path;
> +      apr_array_header_t *changed_paths_in_DF_order;
> +      changed_paths_in_DF_order = svn_sort__hash(
I'd rather use a shorter name for this, and if we think the type of
sorting is important, note that as a comment.  New patch attached.
> +                                              changed_paths,
> +                                              svn_sort_compare_items_as_paths,
> +                                              pool);
>  
> -      for (hi = apr_hash_first(NULL, changed_paths);
> -           hi;
> -           hi = apr_hash_next(hi))
> +
> +      for (i = (changed_paths_in_DF_order->nelts -1) ; i >= 0 ; i--)
>          {
> -          void *val;
> -          apr_hash_this(hi, (void *) &path, NULL, &val);
> -          changed_path = val;
> +          svn_sort__item_t *item = &APR_ARRAY_IDX(changed_paths_in_DF_order,
> +                                                  i,
> +                                                  svn_sort__item_t);
> +          path = item->key;
> +          changed_path = item->value;
>  
>            /* Consider only the path we're interested in. */
>            if (changed_path->copyfrom_path &&
> Index: subversion/tests/cmdline/merge_tests.py
> ===================================================================
> --- subversion/tests/cmdline/merge_tests.py	(revision 25291)
> +++ subversion/tests/cmdline/merge_tests.py	(working copy)
> @@ -6220,7 +6220,9 @@
>    saved_cwd = os.getcwd()
>    try:
>      os.chdir(A_copy_of_B_C_path)
> -    svntest.actions.run_and_verify_svn(None, [], [], 'merge', '-g')
> +    svntest.actions.run_and_verify_svn(None, 
> +                                       svntest.main.merge_notify_line(2), 
> +                                       [], 'merge', '-g')
>    finally:
>      os.chdir(saved_cwd)
>  
> @@ -6432,7 +6434,7 @@
>                XFail(merge_to_path_with_switched_children),
>                merge_with_implicit_target_file,
>                XFail(empty_rev_range_mergeinfo),
> -              XFail(detect_copy_src_for_target_with_multiple_ancestors),
> +              detect_copy_src_for_target_with_multiple_ancestors,
>                prop_add_to_child_with_mergeinfo,
>                diff_repos_does_not_update_mergeinfo,
+1 to commit with suggested tweaks.
- text/plain attachment: patch
 
- application/pgp-signature attachment: stored
 
 
Received on Sat Jun  9 00:49:40 2007