I am currently implementing Gerrit as central code review system. In the process of trying to understand the ins and outs of Gerrit, I got stuck at the sentence below. Taken from the Gerrit documentation:
As Gerrit implements the entire SSH and Git server stack within its own process space, Gerrit maintains complete control over how the repository is updated, and what responses are sent to the
git push
client invoked by the end-user, or byrepo upload
. This allows Gerrit to provide magical refs, such asrefs/for/*
for new change submission andrefs/changes/*
for change replacement.
What does the above statement mean, in particular this sentence: “As Gerrit implements the entire SSH and Git server stack within its own process space”? I tried searching for relevant questions, but the closest I have found is Why is git push gerrit HEAD:refs/for/master used instead of git push origin master, but it doesn’t provide an adequate explanation of how implementation of the server stack allows Gerrit to provide magical refs. Apologies if similar questions have indeed been asked before. Thank you!