Re: [PATCH v2 3/3] archive: support remote archive from stateless transport
- From
Jiang Xin <worldhello.net@gmail.com>
- Date
- Sep 24, 2023, 23:39 UTC
- Message-ID
- <CANYiYbFkG+CvrNFBkdNewZs7ADROVsjd051SDQsU0zVq8eBhew@mail.gmail.com>
- In-Reply-To
- <CAPig+cTRByz10ySknTxPB2yVJf5Snz29LNRq5MtPk2MF3nMziQ@mail.gmail.com>
On Sun, Sep 24, 2023 at 2:52 PM Eric Sunshine <sunshine@sunshineco.com> wrote:
Show 29 quoted lines
>
> On Sat, Sep 23, 2023 at 11:22 AM Jiang Xin <worldhello.net@gmail.com> wrote:
> > Even though we can establish a stateless connection, we still cannot
> > archive the remote repository using a stateless HTTP protocol. Try the
> > following steps to make it work.
> > [...]
> > Signed-off-by: Jiang Xin <zhiyou.jx@alibaba-inc.com>
> > ---
> > diff --git a/http-backend.c b/http-backend.c
> > @@ -639,10 +640,19 @@ static void check_content_type(struct strbuf *hdr, const char *accepted_type)
> > - const char *argv[] = {NULL, "--stateless-rpc", ".", NULL};
> > + const char *argv[4];
> >
> > + if (!strcmp(service_name, "git-upload-archive")) {
> > + argv[1] = ".";
> > + argv[2] = NULL;
> > + } else {
> > + argv[1] = "--stateless-rpc";
> > + argv[2] = ".";
> > + argv[3] = NULL;
> > + }
>
> It may not be worth a reroll, but since you're touching this code
> anyhow, these days we'd use `strvec` for this:
>
> struct strvec argv = STRVEC_INIT;
> if (strcmp(service_name, "git-upload-archive"))
> strvec_push(&argv, "--stateless-rpc");
> strvec_push(&argv, ".");Good suggestion, I'll queue this up as part of next reroll.
-- Jiang Xin