Документація для Герріта, зокрема розділ "Натиснути зміни" , пояснює, що ви натискаєте на "магічний перегляд refs/for/'branch'
за допомогою будь-якого інструмента клієнта Git".
Наступне зображення взято з «Інтро до Герріта» . Коли ти підштовхуєшся до Герріта, ти робиш git push gerrit HEAD:refs/for/<BRANCH>
. Це підштовхує ваші зміни до області постановки (на діаграмі "Очікують зміни"). У Герріта насправді немає гілки, що називається <BRANCH>
; це брехня клієнта git.
Внутрішньо у Gerrit є власна реалізація для стеків Git та SSH. Це дозволяє йому надати "магічні" refs/for/<BRANCH>
відгуки.
Коли надходить запит на натискання на створення ref в одному з цих просторів імен, Герріт виконує власну логіку оновлення бази даних, а потім бреше клієнту про результат операції. Вдалий результат змушує клієнта повірити в те, що Герріт створив рефлекс, але насправді Герріт взагалі не створив його. [ Посилання - Джерріт, "Gritty Details" ].
Після успішного виправлення (тобто, патч було натиснуто на Герріт, [введення його в область постановки "Очікують зміни"), переглянуто, і огляд пройшов), Герріт переміщує зміни з "Очікують зміни" в " Авторитетний сховище ", обчислюючи, до якої гілки підштовхнути її, виходячи з магії, яку вона зробила, коли ви натиснули на refs/for/<BRANCH>
. Таким чином, вдало переглянуті патчі можна витягнути прямо з правильних гілок Authoritative Repository
.