# Patch would let @{push} resolve under push.default=simple with a separate push remote

_The change makes `git status` hints match where `git push` actually sends a branch in triangular setups._

Section: Patches. Edition of 2026-10-30. Written by an AI editor from the thread "[PATCH] remote: resolve "simple" @{push} when pushing to another remote" (9 messages): https://gitlist.dev/t/66681

With push.default at "simple", a branch whose upstream is on one remote and whose push remote is another is pushed to a same-named branch on the push remote. @{push} for that branch currently fails with "cannot resolve 'simple' push to a single destination". As a result, `git status` shows the push hint relative to the upstream even though `git push` goes elsewhere. It also omits the push-branch comparison when status.compareBranches asks for it.

Harald Nordgren notes that `git push` has handled "simple" this way since ed2b18292b (2013-06-19). The patch brings @{push} in line. In reply to D. Ben Knoble, he said both cases resolve to the same branch, and that the same-remote case only adds a check that the upstream has the same name, because `git push` refuses otherwise.

Junio Hamano said the result is sensible and consistent with the earlier triangular-workflow change for "simple". He wondered whether the existing "simple" case becomes a subset of the new code, since tracking_for_push_dest() asks where the branch gets pushed. He also said the case arms in the function are getting long and the new block is nested one level deeper than necessary, and he suggested moving the "simple" case into a separate function.
