<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/remote.c, branch jch</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=jch</id>
<link rel='self' href='https://git.shady.money/git/atom?h=jch'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2026-04-17T04:27:22Z</updated>
<entry>
<title>Merge branch 'ds/fetch-negotiation-options' into jch</title>
<updated>2026-04-17T04:27:22Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-04-17T04:27:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=878809dc2ef29cc38c434c135f3e26cf0eb2509f'/>
<id>urn:sha1:878809dc2ef29cc38c434c135f3e26cf0eb2509f</id>
<content type='text'>
The negotiation tip options in "git fetch" have been reworked to
allow requiring certain refs to be sent as "have" lines, and to
restrict negotiation to a specific set of refs.

* ds/fetch-negotiation-options:
  send-pack: pass negotiation config in push
  remote: add negotiationRequire config as default for --negotiation-require
  fetch: add --negotiation-require option for negotiation
  remote: add remote.*.negotiationRestrict config
  transport: rename negotiation_tips
  fetch: add --negotiation-restrict option
  t5516: fix test order flakiness
</content>
</entry>
<entry>
<title>Merge branch 'ua/push-remote-group' (early part) into jch</title>
<updated>2026-04-17T04:27:21Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-04-17T04:27:21Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=23f10a7d30e0e4837c117a6e151e9508c837e7cf'/>
<id>urn:sha1:23f10a7d30e0e4837c117a6e151e9508c837e7cf</id>
<content type='text'>
* 'ua/push-remote-group' (early part):
  push: support pushing to a remote group
  remote: move remote group resolution to remote.c
</content>
</entry>
<entry>
<title>remote: add negotiationRequire config as default for --negotiation-require</title>
<updated>2026-04-15T18:30:40Z</updated>
<author>
<name>Derrick Stolee</name>
<email>stolee@gmail.com</email>
</author>
<published>2026-04-15T15:14:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=288ea6c3c275d29817efa6e80711701abd041dfe'/>
<id>urn:sha1:288ea6c3c275d29817efa6e80711701abd041dfe</id>
<content type='text'>
Add a new 'remote.&lt;name&gt;.negotiationRequire' multi-valued config option
that provides default values for --negotiation-require when no
--negotiation-require arguments are specified over the command line.
This is a mirror of how 'remote.&lt;name&gt;.negotiationRestrict' specifies
defaults for the --negotiation-restrict arguments.

Each value is either an exact ref name or a glob pattern whose tips
should always be sent as 'have' lines during negotiation. The config
values are resolved through the same resolve_negotiation_require()
codepath as the CLI options.

This option is additive with the normal negotiation process: the
negotiation algorithm still runs and advertises its own selected
commits, but the refs matching the config are sent unconditionally
on top of those heuristically selected commits.

Signed-off-by: Derrick Stolee &lt;stolee@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>remote: add remote.*.negotiationRestrict config</title>
<updated>2026-04-15T18:30:40Z</updated>
<author>
<name>Derrick Stolee</name>
<email>stolee@gmail.com</email>
</author>
<published>2026-04-15T15:14:23Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=203275d13a761d8d4dfecddc0a78beb5daebf51c'/>
<id>urn:sha1:203275d13a761d8d4dfecddc0a78beb5daebf51c</id>
<content type='text'>
In a previous change, the --negotiation-restrict command-line option of
'git fetch' was added as a synonym of --negotiation-tips. Both of these
options restrict the set of 'haves' the client can send as part of
negotiation.

This was previously not available via a configuration option. Add a new
'remote.&lt;name&gt;.negotiationRestrict' multi-valued config option that
updates 'git fetch &lt;name&gt;' to use these restrictions by default.

If the user provides even one --negotiation-restrict argument, then the
config is ignored.

Signed-off-by: Derrick Stolee &lt;stolee@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>odb: rename `odb_has_object()` flags</title>
<updated>2026-04-01T03:43:14Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2026-03-31T23:57:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c63911b052dc286de5daddba8d4a20fd59348cee'/>
<id>urn:sha1:c63911b052dc286de5daddba8d4a20fd59348cee</id>
<content type='text'>
Rename `odb_has_object()` flags to be properly prefixed with the
function name.

Signed-off-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>remote: move remote group resolution to remote.c</title>
<updated>2026-03-25T19:35:15Z</updated>
<author>
<name>Usman Akinyemi</name>
<email>usmanakinyemi202@gmail.com</email>
</author>
<published>2026-03-25T19:09:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ee832e326985499ca3f17855f69dca22a4d41406'/>
<id>urn:sha1:ee832e326985499ca3f17855f69dca22a4d41406</id>
<content type='text'>
`get_remote_group`, `add_remote_or_group`, and the `remote_group_data`
struct are currently defined as static helpers inside builtin/fetch.c.
They implement generic remote group resolution that is not specific to
fetch — they parse `remotes.&lt;name&gt;` config entries and resolve a name
to either a list of group members or a single configured remote.

Move them to remote.c and declare them in remote.h so that other
builtins can use the same logic without duplication.

Useful for the next patch.

Suggested-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Signed-off-by: Usman Akinyemi &lt;usmanakinyemi202@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'hn/status-compare-with-push'</title>
<updated>2026-03-12T21:09:06Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-03-12T21:09:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d0413b31ddcce6ae6ffaff0a30a67ffbd1a7c648'/>
<id>urn:sha1:d0413b31ddcce6ae6ffaff0a30a67ffbd1a7c648</id>
<content type='text'>
"git status" learned to show comparison between the current branch
and various other branches listed on status.compareBranches
configuration.

* hn/status-compare-with-push:
  status: clarify how status.compareBranches deduplicates
  status: add status.compareBranches config for multiple branch comparisons
  refactor format_branch_comparison in preparation
</content>
</entry>
<entry>
<title>status: add status.compareBranches config for multiple branch comparisons</title>
<updated>2026-02-26T15:25:48Z</updated>
<author>
<name>Harald Nordgren</name>
<email>haraldnordgren@gmail.com</email>
</author>
<published>2026-02-26T10:33:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3ea95ac9c5a8ac60702b157153498453afe7ab3b'/>
<id>urn:sha1:3ea95ac9c5a8ac60702b157153498453afe7ab3b</id>
<content type='text'>
Add a new configuration variable status.compareBranches that allows
users to specify a space-separated list of branch comparisons in
git status output.

Supported values:
- @{upstream} for the current branch's upstream tracking branch
- @{push} for the current branch's push destination

Any other value is ignored and a warning is shown.

When not configured, the default behavior is equivalent to setting
`status.compareBranches = @{upstream}`, preserving backward
compatibility.

The advice messages shown are context-aware:
- "git pull" advice is shown only when comparing against @{upstream}
- "git push" advice is shown only when comparing against @{push}
- Divergence advice is shown for upstream branch comparisons

This is useful for triangular workflows where the upstream tracking
branch differs from the push destination, allowing users to see their
status relative to both branches at once.

Example configuration:
    [status]
        compareBranches = @{upstream} @{push}

Signed-off-by: Harald Nordgren &lt;haraldnordgren@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>refactor format_branch_comparison in preparation</title>
<updated>2026-02-26T15:25:48Z</updated>
<author>
<name>Harald Nordgren</name>
<email>haraldnordgren@gmail.com</email>
</author>
<published>2026-02-26T10:33:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=04f47265c1cfb8dce2287b5fb36ddfaa86a2ac61'/>
<id>urn:sha1:04f47265c1cfb8dce2287b5fb36ddfaa86a2ac61</id>
<content type='text'>
Refactor format_branch_comparison function in preparation for showing
comparison with push remote tracking branch.

Signed-off-by: Harald Nordgren &lt;haraldnordgren@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ps/commit-list-functions-renamed'</title>
<updated>2026-02-13T21:39:25Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2026-02-13T21:39:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=528820243334c55e015047477e720a14bc9cf25f'/>
<id>urn:sha1:528820243334c55e015047477e720a14bc9cf25f</id>
<content type='text'>
Rename three functions around the commit_list data structure.

* ps/commit-list-functions-renamed:
  commit: rename `free_commit_list()` to conform to coding guidelines
  commit: rename `reverse_commit_list()` to conform to coding guidelines
  commit: rename `copy_commit_list()` to conform to coding guidelines
</content>
</entry>
</feed>
