No user (even site administrators) is permitted to make modifications
to the refs/changes/ namespace during push. This restriction
prevents commits needed to remember patch sets of a change from
being deleted or replaced after the review has already started.
The primary reason the git receive-pack server advertises references
to the send-pack client is to let it know what references the client
can change, and allow the client to detect if the change should
require the --force flag. The secondary reason is to help the
client compute a common ancestor with the server, and reduce the
amount of objects it must upload. Either way the client doesn't
need the list of all commits submitted for review, it can function
perfectly fine without the refs/changes/ names.
For some really busy repositories, this can save megabytes worth
of text that needs to be sent from server to client each time the
client tries to push a change for review.
Change-Id: I4815adcdb58b8fea24b77b6b5e92a0d073dddb0f
Signed-off-by: Shawn O. Pearce <sop@google.com>