diff options
| author | Usman Akinyemi <usmanakinyemi202@gmail.com> | 2026-05-03 21:04:02 +0530 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2026-05-04 10:11:17 +0900 |
| commit | 8ea82816652d20ac7070a8fcd60980568a8a293c (patch) | |
| tree | f4128180ecc3be52716d7593974189513ca785d3 /t/t4013/diff.diff_initial..side | |
| parent | 3e7b9dce27b1519f6745c89fe01f0b840acddb0a (diff) | |
push: support pushing to a remote group
`git fetch` accepts a remote group name (configured via `remotes.<name>`
in config) and fetches from each member remote. `git push` has no
equivalent — it only accepts a single remote name.
Teach `git push` to resolve its repository argument through
`add_remote_or_group()`, which was made public in the previous patch,
so that a user can push to all remotes in a group with:
git push <group>
When the argument resolves to a single remote, the behaviour is
identical to before. When it resolves to a group, each member remote
is pushed in sequence.
The group push path rebuilds the refspec list (`rs`) from scratch for
each member remote so that per-remote push mappings configured via
`remote.<name>.push` are resolved correctly against each specific
remote. Without this, refspec entries would accumulate across iterations
and each subsequent remote would receive a growing list of duplicated
entries.
Mirror detection (`remote->mirror`) is also evaluated per remote using
a copy of the flags, so that a mirror remote in the group cannot set
TRANSPORT_PUSH_FORCE on subsequent non-mirror remotes in the same group.
Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4013/diff.diff_initial..side')
0 files changed, 0 insertions, 0 deletions
