Always populate the children_with_mergeinfo array in merge.c with at least one element describing the merge taking place.
Always populate the children_with_mergeinfo array in merge.c with at least
one element describing the merge taking place.

Also, a tiny bit o' refactoring for a beastly merge.c function -- more to
come, but this has some logic changes too so is being done separately.

* subversion/libsvn_client/merge.c
  (THE CHILDREN_WITH_MERGEINFO ARRAY): Tweak this global comment to reflect
  some new requirements.
  (do_mergeinfo_unaware_dir_merge): New, factored out of
  do_directory_merge().  Small logic change from the original code:
  Previously when merging unrelated changes from a foreign repository we
  didn't populate the   children_with_mergeinfo array with anything.  This
  was the *only* time we didn't do that, and honestly it seems like dumb
  luck that this hasn't been a problem.  So in the name of consistency we
  now put one element describing the merge.  
  (do_directory_merge): Factor out a small bit of code to
  new do_mergeinfo_unaware_dir_merge().  Another small logic change:
  Previously we only called this chunk of code if the merge sources were
  unrelated or during a foreign repository merge, but this change expands
  that to any time we are not honoring mergeinfo.

git-svn-id: f8a4e5e023278da1e04e203c7fe051e3c4285d88@877595 13f79535-47bb-0310-9956-ffa450edef68

wbond/subversion,wbond/subversion,YueLinHo/Subversion,YueLinHo/Subversion,wbond/subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,wbond/subversion,wbond/subversion,wbond/subversion,YueLinHo/Subversion,wbond/subversion,YueLinHo/Subversion