Re: [PATCH 0/6] Push negotiation
Jonathan Tan <jonathantanmy@google.com> writes:
Show 20 quoted lines
> Here are patches for push negotiation. The basic idea is that we can
> reuse part of the fetch protocol (and code) to find out what is in
> common between the client and server, and then use that information to
> further narrow the objects sent in the packfile during a push.
>
> Patch 1 is a bug fix that probably should be merged even if the rest
> aren't. Patches 2-4 are refactorings in preparation for the future
> patches. Patches 5-6 contain the actual logic and documentation.
>
> I have written more about it in my prior work [1], although the commit
> messages and documentation in patches 5-6 should be enough to explain
> what's going on. (If they're not, feel free to make review comments.)
>
> The main change from [1] is that the client-side code that used to be in
> builtin/fetch-pack.c is now in builtin/fetch.c, because I realized that
> builtin/fetch-pack.c does not support HTTP. Other than that, all the
> "what hasn't been done yet" items have been done except for statistics
> in the commit message.
>
> [1] https://lore.kernel.org/git/20210218012100.928957-1-jonathantanmy@google.com/
So... anybody else wants to review this and give it a-OK?
Show 23 quoted lines
> Jonathan Tan (6):
> fetch-pack: buffer object-format with other args
> fetch-pack: refactor process_acks()
> fetch-pack: refactor add_haves()
> fetch-pack: refactor command and capability write
> fetch: teach independent negotiation (no packfile)
> send-pack: support push negotiation
>
> Documentation/config/push.txt | 7 +
> Documentation/technical/protocol-v2.txt | 8 +
> builtin/fetch.c | 27 ++-
> fetch-pack.c | 224 +++++++++++++++---------
> fetch-pack.h | 11 ++
> object.h | 2 +-
> send-pack.c | 61 ++++++-
> t/t5516-fetch-push.sh | 35 ++++
> t/t5701-git-serve.sh | 2 +-
> t/t5702-protocol-v2.sh | 89 ++++++++++
> transport-helper.c | 10 ++
> transport.c | 30 +++-
> transport.h | 6 +
> upload-pack.c | 18 +-
> 14 files changed, 430 insertions(+), 100 deletions(-)