From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS31976 209.132.180.0/23 X-Spam-Status: No, score=-2.7 required=3.0 tests=AWL,BAYES_00,BODY_8BITS, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_NONE shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by dcvr.yhbt.net (Postfix) with ESMTP id E0B5E1F487 for ; Sun, 29 Mar 2020 14:35:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728282AbgC2Of7 (ORCPT ); Sun, 29 Mar 2020 10:35:59 -0400 Received: from mail-yb1-f194.google.com ([209.85.219.194]:38257 "EHLO mail-yb1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728075AbgC2Of6 (ORCPT ); Sun, 29 Mar 2020 10:35:58 -0400 Received: by mail-yb1-f194.google.com with SMTP id 204so7523356ybw.5 for ; Sun, 29 Mar 2020 07:35:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=m5GiN8+AfwbpW6EyfdoyVaa6e5RWhw7ZcYqe+K/55nc=; b=BCijbXrIUDn3M2mSr7IsrLHSzXW5U4czfphmufDvD/eNV53xsm+c0JxjUn1gn/GNJB t8+53ET5Xvi1iw7AMBkBImi26Row7Dq/AWQ0A6q18K3jo1IdsQjIKsUHYd50gZfBixma CMV1QlWl53aoUjmdWK3R3cE/SkiOvokLiveFQ8hdMEKLS45lYkzmDQQZulDIkqh4RU36 bjXh2KpdWPvg5eMcvI5MuN3G6FQMoLEdzRUqrweRHYP4uzStvzJqxgdcJ/SLgOI7ySl/ Dtkd9NZG2hnPPi5yoBF1u2QUKcIJHKCQerL9i8kDgkexQvCOa0UDQftVlfkwpRMmXZ4K NtLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=m5GiN8+AfwbpW6EyfdoyVaa6e5RWhw7ZcYqe+K/55nc=; b=ECJmB+cF8AepRTFJllJg5MoRyV8+RKQeCnbxAN/baqr7+gmxuNj/kHyJ1RifrPyoiP 06lBBmKTazcer3rVk+GP5dABDkSzpAkARtYqPbOt8/QJRhUOU4eoohhD9v9vu+TAJ6z3 BkVcIYyK8bEJWlR+qLUOpRvmt28B0pqn4k2uQ1cUy91XTI+VSm1QozJyzk4X4SrEk28e 7463sunTp15Gb50Av7lPnpaYIOws97fPmH1SQ/Jhlbi8Leu3OosoCwYQvmS6pyZQ0mV3 y4R0sC2oasJdUyy3cCxo4wCBFsoWX7DG18NU7fHuHjtwmaWL4wxY4PEW0EjsOYHxch93 /eAA== X-Gm-Message-State: ANhLgQ3K1WNFuXromIzcohxVg9tSVPQLQazPnQu9fsTl6GbPpMK9PgLu NDrTx1SUWWxomBcfrRDoxTdfYQbXHjcO/ruFbLwv6Jy6 X-Google-Smtp-Source: ADFU+vtC833iVcQeThbA6OoVl3WYsqvu2njiClcJaRWG8znPiOsd14D2Mwy+5iOTVDfPmqMtDQ6vrP81pdNnzjUuB+M= X-Received: by 2002:a5b:ed2:: with SMTP id a18mr12685227ybs.520.1585492557987; Sun, 29 Mar 2020 07:35:57 -0700 (PDT) MIME-Version: 1.0 References: <20200325143608.45141-1-zhiyou.jx@alibaba-inc.com> <20200329143329.13846-1-worldhello.net@gmail.com> In-Reply-To: <20200329143329.13846-1-worldhello.net@gmail.com> From: Jiang Xin Date: Sun, 29 Mar 2020 22:35:47 +0800 Message-ID: Subject: Re: [PATCH v2 0/4] Never report references we not push To: Junio C Hamano , Git List Cc: Jiang Xin Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Jiang Xin =E4=BA=8E2020=E5=B9=B43=E6=9C=8829=E6= =97=A5=E5=91=A8=E6=97=A5 =E4=B8=8B=E5=8D=8810:33=E5=86=99=E9=81=93=EF=BC=9A > > ## Changes since v1: > > * Add a new common method `reject_atomic_push()`, which is reused for > atomic push rejection for SSH and HTTP protocol. I first try to add some common methods in `transport_push()` of "transport.c", but I find it is hard to do this. Because the capabilities has not been set after calling `transport->vtable->get_refs_list` for HTTP protocol. And for the same reason, the following code in `send-pack.c` cannot move to `set_ref_status_for_push()`. /* * NEEDSWORK: why does delete-refs have to be so specific to * send-pack machinery that set_ref_status_for_push() cannot * set this bit for us??? */ for (ref =3D remote_refs; ref; ref =3D ref->next) if (ref->deletion && !allow_deleting_refs) ref->status =3D REF_STATUS_REJECT_NODELETE I wonder if we can extend method `get_refs_list()` of "transport-helper.c" and "remote-curl.c", so we can all method `server_supports()` in `transport_push()` of "transport.c".