]> git.ipfire.org Git - thirdparty/git.git/commit - transport.c
fetch-pack: support negotiation tip whitelist
authorJonathan Tan <jonathantanmy@google.com>
Mon, 2 Jul 2018 22:39:44 +0000 (15:39 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 3 Jul 2018 22:00:41 +0000 (15:00 -0700)
commit3390e42adb3b84a9d61b3d46f4105f4cb6ba5edd
tree6d3b797117769e6c5a60d9fcd0b30bc7479d20f1
parentec06283844a90c3e9440286401e9ad7d86daa5ae
fetch-pack: support negotiation tip whitelist

During negotiation, fetch-pack eventually reports as "have" lines all
commits reachable from all refs. Allow the user to restrict the commits
sent in this way by providing a whitelist of tips; only the tips
themselves and their ancestors will be sent.

Both globs and single objects are supported.

This feature is only supported for protocols that support connect or
stateless-connect (such as HTTP with protocol v2).

This will speed up negotiation when the repository has multiple
relatively independent branches (for example, when a repository
interacts with multiple repositories, such as with linux-next [1] and
torvalds/linux [2]), and the user knows which local branch is likely to
have commits in common with the upstream branch they are fetching.

[1] https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next/
[2] https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux/

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/fetch-options.txt
builtin/fetch.c
fetch-pack.c
fetch-pack.h
t/t5510-fetch.sh
transport-helper.c
transport.c
transport.h