When we commit a text modification, a temp file is left around (later to be installed as the new text base). This file was also used to compute a checksum for the new entry, but the ugly part was that we just *assumed* a particular location for the file and checksum'd it.
When we commit a text modification, a temp file is left around (later to
be installed as the new text base). This file was also used to compute a
checksum for the new entry, but the ugly part was that we just *assumed* a
particular location for the file and checksum'd it.

In actuality, we already had the checksum stashed away in the commit
queue, or (in some cases) the unmodified text base. So: go look around for
the checksum instead of assuming a path and computing the checksum.

* subversion/libsvn_wc/adm_ops.c:
  (struct svn_wc_committed_queue_t, committed_queue_item_t): move to top
    of file, like all good structs should be.
  (process_committed_leaf); take the commit queue as a parameter, and look
    in there for a file that we may have sent to the server. if it isn't
    there, then we should be able to find a text base for it. in one edge
    case, we simply don't have a checksum, but the file is scheduled for
    deletion anyways.
  (process_committed_internal): take a queue as a parameter, and pass it
    along when recursing on self, or calling _leaf.
  (svn_wc_process_committed_queue): pass the queue along
  (svn_wc_process_committed4): pass a NULL for the queue


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

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