Fix rbt post for perforce repositories
Review Request #4110 — Created May 7, 2013 and submitted
Fix rbt post for perforce repositories. When using rbt post with perforce, if a change number was already in use there would be an error. We now detect the error, and update the associated review request. Also, we now only update drafts if needed in rbt post. rbt post would make an HTTP request to update the review request draft with fields even if there were none which required updating, resulting in an unnecessary empty HTTP PUT. A Content-Length header is now provided on empty requests. Some web servers require a Content-Length header be provided on all POST/PUT requests, when the API would make an empty POST/PUT request it was not providing this header. We now set a "0" Content-Length which should prevent these servers from responding with an HTTP 411.
Have not tested with perforce yet, working on setting up a server. Testing by those who use perforce would be appreciated.