Summary
Add a flag to gh stack sync so that when a conflict is detected it automatically runs gh stack rebase (instead of instructing the user to run rebase manually).
Background / motivation
Currently when users run gh stack sync and it encounters a conflict the CLI prints an instruction to run gh stack rebase. Some users would prefer a single-command flow that attempts a rebase automatically when a conflict occurs to avoid typing two commands.
Proposed behavior
- Add an explicit flag to
gh stack sync, for example --rebase-on-conflict (alternative names: --rebase-if-conflict, --auto-rebase).
- Default behavior of
gh stack sync remains unchanged (safe, no automatic rebase).
- When the flag is provided and sync detects a conflict,
gh stack sync should automatically invoke the rebase flow (equivalent to running gh stack rebase).
- The flag signals that the user consents to the potential rebase-related outcomes (e.g., temporary detached HEAD during an in-progress rebase), so the command can proceed without an additional prompt.
- The command should preserve non-interactive behavior where appropriate (i.e., suitable for scripts). If prompts are required during rebase, consider a complementary
--yes or --no-interactive option, or clearly document the interaction expectations.
Acceptance criteria
gh stack sync --rebase-on-conflict will run a rebase automatically if a conflict is encountered during sync.
- The default
gh stack sync remains unchanged and does not perform automatic rebases.
- Documentation for
gh stack sync includes the new flag and describes its behavior and risks.
Example
- Normal:
gh stack sync
- With flag:
gh stack sync --rebase-on-conflict
Notes / implementation hints
- Consider the exact flag name and whether a short alias (e.g.,
-r) is appropriate.
- Ensure the UX communicates that the user opted in to automatic rebase behavior and any potential consequences.
- Make sure the behavior is deterministic for CI/automation usage (document or provide an explicit non-interactive mode).
View original Slack conversation
Summary
Add a flag to gh stack sync so that when a conflict is detected it automatically runs gh stack rebase (instead of instructing the user to run rebase manually).
Background / motivation
Currently when users run
gh stack syncand it encounters a conflict the CLI prints an instruction to rungh stack rebase. Some users would prefer a single-command flow that attempts a rebase automatically when a conflict occurs to avoid typing two commands.Proposed behavior
gh stack sync, for example--rebase-on-conflict(alternative names:--rebase-if-conflict,--auto-rebase).gh stack syncremains unchanged (safe, no automatic rebase).gh stack syncshould automatically invoke the rebase flow (equivalent to runninggh stack rebase).--yesor--no-interactiveoption, or clearly document the interaction expectations.Acceptance criteria
gh stack sync --rebase-on-conflictwill run a rebase automatically if a conflict is encountered during sync.gh stack syncremains unchanged and does not perform automatic rebases.gh stack syncincludes the new flag and describes its behavior and risks.Example
gh stack syncgh stack sync --rebase-on-conflictNotes / implementation hints
-r) is appropriate.View original Slack conversation