> -----Original Message-----
> From: pbu...@apache.org [mailto:pbu...@apache.org]
> Sent: maandag 23 april 2012 22:13
> To: comm...@subversion.apache.org
> Subject: svn commit: r1329417 - in /subversion/trunk/subversion:
> libsvn_client/merge.c tests/cmdline/merge_tests.py
> 
> Author: pburba
> Date: Mon Apr 23 20:13:19 2012
> New Revision: 1329417
> 
> URL: http://svn.apache.org/viewvc?rev=1329417&view=rev
> Log:
> Fix issue #4166 'multiple merge editor drives which add then delete a
> subtree fail'.
> 
> * subversion/libsvn_client/merge.c
>   (notification_receiver): If we delete a path a previous editor drive added
>    then remove that path from our hash of added paths, since we don't want to
>    attempt to record mergeinfo on that deleted path.
> 
> * subversion/tests/cmdline/merge_tests.py
>   (merge_adds_then_deletes_subtree): New test.
>   (test_list): Add merge_adds_then_deletes_subtree.
> 
> Modified:
>     subversion/trunk/subversion/libsvn_client/merge.c
>     subversion/trunk/subversion/tests/cmdline/merge_tests.py
> 
> Modified: subversion/trunk/subversion/libsvn_client/merge.c
> URL:
> http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge
> .c?rev=1329417&r1=1329416&r2=1329417&view=diff
> =================================================================
> =============
> --- subversion/trunk/subversion/libsvn_client/merge.c (original)
> +++ subversion/trunk/subversion/libsvn_client/merge.c Mon Apr 23 20:13:19
> 2012
> @@ -2966,6 +2966,16 @@ notification_receiver(void *baton, const
>              apr_hash_set(notify_b->added_abspaths, added_path,
>                           APR_HASH_KEY_STRING, added_path);
>          }
> +
> +      if (notify->action == svn_wc_notify_update_delete
> +          && notify_b->added_abspaths)
> +        {
> +          /* Issue #4166: If a previous merge added NOTIFY_ABSPATH, but we
> +             are now deleting it, then remove it from the list of added
> +             paths. */
> +          apr_hash_set(notify_b->added_abspaths, notify_abspath,
> +                       APR_HASH_KEY_STRING, NULL);
> +        }

This should probably recursively delete all added paths below notify_abspath, 
instead of just the root to allow additions there.

        Bert 


Reply via email to