Skip to content

integration: tip advance moves tips to upstack leaves#1259

Open
ed-irl wants to merge 3 commits into
ed-irl/integration-tip-cleanfrom
ed-irl/integration-tip-advance
Open

integration: tip advance moves tips to upstack leaves#1259
ed-irl wants to merge 3 commits into
ed-irl/integration-tip-cleanfrom
ed-irl/integration-tip-advance

Conversation

@ed-irl

@ed-irl ed-irl commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Extending a stack above a configured tip leaves the tip "behind" —
the integration branch keeps merging the old tip and ignores the new
top of the stack. The workaround so far has been 'tip remove old'
plus 'tip add new', which gets tedious when several tips drift
together.

Add 'gs integration tip advance' that walks the upstack tree of each
configured tip via graph.Tops, swaps the tip for its leaves, and
dedups across tips. Linear case ('low -> middle -> high' with tip
'low') collapses to a single replacement: 'low' becomes 'high'.
Forked case ('base -> {fork-a, fork-b}' with tip 'base') expands to
both leaves. Already-at-the-top tips are left alone with no log
spam. An empty advance reports "No tips to advance".

The optional positional argument scopes the operation to a subset of
configured tips, so 'tip advance fork-a' walks only that tip.
Unrecognized names abort before any mutation so we never leave the
tip list half-updated.

@ed-irl

ed-irl commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator Author

@ed-irl ed-irl force-pushed the ed-irl/integration-tip-clean branch from 55fe46e to f1d3ea6 Compare June 13, 2026 13:41
@ed-irl ed-irl force-pushed the ed-irl/integration-tip-advance branch from a1f8426 to 8a31e8a Compare June 13, 2026 13:41
@ed-irl ed-irl force-pushed the ed-irl/integration-tip-clean branch from f1d3ea6 to e59ef3a Compare June 15, 2026 09:54
@ed-irl ed-irl force-pushed the ed-irl/integration-tip-advance branch from 8a31e8a to cc895aa Compare June 15, 2026 09:54
ed-irl and others added 2 commits June 23, 2026 11:43
Extending a stack above a configured tip leaves the tip "behind" —
the integration branch keeps merging the old tip and ignores the new
top of the stack. The workaround so far has been 'tip remove old'
plus 'tip add new', which gets tedious when several tips drift
together.

Add 'gs integration tip advance' that walks the upstack tree of each
configured tip via graph.Tops, swaps the tip for its leaves, and
dedups across tips. Linear case ('low -> middle -> high' with tip
'low') collapses to a single replacement: 'low' becomes 'high'.
Forked case ('base -> {fork-a, fork-b}' with tip 'base') expands to
both leaves. Already-at-the-top tips are left alone with no log
spam. An empty advance reports "No tips to advance".

The optional positional argument scopes the operation to a subset of
configured tips, so 'tip advance fork-a' walks only that tip.
Unrecognized names abort before any mutation so we never leave the
tip list half-updated.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant