Fix issue #4329 'automatic merge uses reintegrate type merge if source is fully synced'. * subversion/libsvn_client/merge.c (operative_revs_receiver): New svn_log_entry_receiver_t. (find_last_merged_location): Add new svn_client__pathrev_t argument tracking the target. If the target's mergeinfo shows that a previous merge has been performed from the source to the target, then use svn_client_mergeinfo_log2() to determine if there are any inoperative revisions younger than the last merged location determined strictly by the target's mergeinfo. (find_base_on_source, find_base_on_target): Update calls to find_last_merged_location(). * subversion/include/svn_client.h (svn_client_mergeinfo_log2): Add new limit argument similar to that in svn_client_log5(). (svn_client_mergeinfo_log): Doc string tweak to reflect change to wrapped API. * subversion/libsvn_client/deprecated.c (svn_client_mergeinfo_log): Update call to svn_client_mergeinfo_log2. * subversion/libsvn_client/mergeinfo.c (filter_log_entry_baton_t): Add new members to implement new limit argument to svn_client_mergeinfo_log2(). (filter_log_entry_with_rangelist): Stop calling wrapped log receiver if limit has been reached. Note: This is fairly ugly because *this* callback is still called for all the remaining ranges! (logs_for_mergeinfo_rangelist): Add new argument tracking the LIMIT arg to svn_client_mergeinfo_log2(). (svn_client_mergeinfo_log2): Implement new limit argument. * subversion/svn/mergeinfo-cmd.c (svn_cl__mergeinfo): Update calls to svn_client_mergeinfo_log2(). * subversion/tests/cmdline/merge_automatic_tests.py (effective_sync_results_in_reintegrate): Remove XFail decorator and tweak comment re failure status. * subversion/tests/cmdline/merge_reintegrate_tests.py (reintegrate_with_subtree_merges): Expand test to cover issue #4329.