mirror of
https://github.com/penpot/penpot.git
synced 2026-10-29 14:00:37 +00:00
The op log IS the delta between a branch and its merge base, so folding validate/extract-affected-ids over it yields the exact set of pages the branch can differ in. compute-merge takes :only-pages and bounds every page pass to it, the presence pass included, which is where a whole-file comparison spends its time. The forward pass is bounded; the reverse one reports main's changes and stays whole-file. The bound is dropped whenever the log holds a change the reducer cannot scope to a page or a component (a deletion, page order, a colour, a token), because for those the affected set is incomplete and a bounded diff would hide work.