Initial commit of the refactoring of the commit harvester as a wc_status callback. This commit slows down the commit harvester a lot as it doesn't change the recursion yet. So currently a status call is done for every node.
Initial commit of the refactoring of the commit harvester as a wc_status
callback. This commit slows down the commit harvester a lot as it doesn't
change the recursion yet. So currently a status call is done for every
node.

Add some temporary code to compensate for the fact that the status walker
doesn't walk not-present children of BASE nodes, which the commit walker
needs for copy WC URL.

The next step is to replace the original recursion with the status recursion,
which will improve performance over the old code.

* subversion/libsvn_client/commit_util.c
  (harvest_committables): Split this function in an outer function and an
    implementation of svn_wc_status_func4_t.
  (harvest_baton): New struct.
  (harvest_status_callback): New function.


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

YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion