Theory

Updated

October 30, 2026

Theory: The Change is the Object, Not the Branch

Gerrit stores a change with a Change-Id, patch sets, and an approval predicate. Branches are an output of submit, not the collaboration primitive.

Invariants

  1. Each push of the same Change-Id is a new patch set (new Git commits).
  2. Submit is a server-side integrate (merge/rebase/cherry-pick) after labels.
  3. Android/Chromium scale is why this model exists.
refs/for/main  →  change 123 patch set 3
labels  Code-Review+2  Verified+1  →  submit  →  main

What can break

  • Treating Gerrit like GitHub PRs (one branch per feature forever).

How to read this chapter

Model, Change-Ids, CI, ops, practice, lab, when it fits.