mirror of
https://github.com/penpot/penpot.git
synced 2026-10-29 14:00:37 +00:00
The branch compare panel now offers per-change selection, grouped by the component each shape belongs to. Every summary entry carries a stable change key (kind/page/id, the design-branches PoC format), and the panel's checkboxes key on it. merge-file-branch and update-branch-from-main take the deselected keys as an excluded set. An excluded change is dropped on the user's word: a conflicting entity resolves to the target side (the recorded choice, per the no-silent-winner decision), and an excluded addition cascades to its added descendants, so no emitted change references a parent the merge does not create. A merge whose every change is excluded refuses with :nothing-to-merge. The update squash needs no filter: whatever excluded main work is missing from the branch lands in the squashed net as a branch-side delta, so the branch state still replays from its repositioned base. AI-assisted-by: glm-5.3-flash Signed-off-by: Álvaro Tejero Cantero <alvorithm@teje.ro>