abhinav / abhinav/git-spice

Integration branch: a merged preview of multiple stacks

Aperta
#1,244 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
enhancement proposal/accepted
Lingua principale
Go
Stelle
762
Fork
72
Merge medio
18h 24m
PR unite (30g)
28

Descrizione

## Problem

When work is split across several parallel stacks, there is no single
ref that combines them for local testing or preview. Developers
manually merge tips together to get an integrated view, then have to
redo it by hand every time any stack changes.

## Proposal

Add an **integration branch** feature: a managed, throwaway ref that
merges a configured, ordered set of stack tips onto trunk. It is a
derived artifact — rebuilt from its configured tips on demand — giving
one combined branch for local testing without being load-bearing state.

Components:

- **State model**: repo-scoped integration info carrying the singleton
integration branch name, upstream branch, last-pushed hash (for
`--force-with-lease` leasing), and an ordered list of tips with the
hashes recorded at the last rebuild. Includes persistence of a paused
rebuild so a merge conflict can be resolved and resumed.
- **Git helpers**: `Merge`, `IsClean`, and `CheckoutNewBranch` worktree
primitives needed to build the merged branch.
- **Handler package**: orchestration for rebuild/advance/clean and
conflict-resume logic.
- **CLI**: the `gs integration` command tree.
- **Hooks**: auto-rebuild and auto-submit integration on relevant
operations.
- **Conflict handling**: regenerate conflicted derived files during the
rebuild merge rather than surfacing them as raw conflicts.

## Tracked by

- #1165 — state model for the integration branch
- #1172 — `Merge`, `IsClean`, `CheckoutNewBranch` git helpers
- #1173 — handler package for integration operations
- #1174 — wire the `gs integration` command tree
- #1175 — auto-rebuild and auto-submit hooks
- #1176 — regenerate conflicted derived files on merge

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.