Reproduction
Start with an existing three-PR stack whose local branches were rebased and therefore require force pushes, then run:
$ gh stack sync --remote origin
✓ Fetched latest dev from origin
✓ Trunk dev is already up to date
Pushing 3 branches to origin...
⚠ Push failed — branches may need force push after rebase
Run `gh stack push` to push with --force-with-lease.
Syncing PRs ...
✓ PR #4440 (...) — Open
✓ PR #4441 (...) — Open
✓ PR #4444 (...) — Open
⚠ Cannot create stack: Pull requests must form a stack, where each PR's base ref is the previous PR's head ref
Each PR's base branch must match the previous PR's head branch.
✓ Branches synced
Stacked on dev (a80f5ad)
$ echo $?
0
All three remote branch SHAs remained unchanged. The local stack was therefore not published, but sync continued into PR synchronization, printed a success receipt, and exited zero.
Expected
gh stack sync exits nonzero immediately when its atomic branch push fails. It does not attempt PR synchronization or print Branches synced, because the remote stack cannot match local state until the branch refs are updated.
Environment
gh-stack v0.1.0
gh 2.96.0
- git 2.50.1
- macOS arm64
Related
#346 covers suppressed git-hook output during gh stack push. This report is about sync swallowing the failed-push status and returning a false success.
Reproduction
Start with an existing three-PR stack whose local branches were rebased and therefore require force pushes, then run:
All three remote branch SHAs remained unchanged. The local stack was therefore not published, but
synccontinued into PR synchronization, printed a success receipt, and exited zero.Expected
gh stack syncexits nonzero immediately when its atomic branch push fails. It does not attempt PR synchronization or printBranches synced, because the remote stack cannot match local state until the branch refs are updated.Environment
gh-stackv0.1.0gh2.96.0Related
#346 covers suppressed git-hook output during
gh stack push. This report is aboutsyncswallowing the failed-push status and returning a false success.