Re: [PATCH v14 0/7] New proc-receive hook for centralized workflow

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jiang Xin <worldhello.net@xxxxxxxxx> 于2020年5月7日周四 上午9:37写道:
>
> Junio C Hamano <gitster@xxxxxxxxx> 于2020年5月7日周四 上午7:14写道:
> >
> > Jiang Xin <worldhello.net@xxxxxxxxx> writes:
> >
> > > From: Jiang Xin <zhiyou.jx@xxxxxxxxxxxxxxx>
> > >
> > > This topic introduces a new hook named "proc-receive" for
> > > "receive-pack".  We can use this hook to implement a Gerrit-like
> > > centralized workflow.
> >
> > https://github.com/git/git/runs/651179641 shows us that osx-clang
> > job ends like so:
> >
> > Thanks.
> >
> >
> > Test Summary Report
> > -------------------
> > t5411-proc-receive-hook.sh                       (Wstat: 256 Tests: 273 Failed: 0)
> >   Non-zero exit status: 1
> >   Parse errors: Tests out of sequence.  Found (27) but expected (26)
> >                 Tests out of sequence.  Found (28) but expected (27)
> >                 Tests out of sequence.  Found (29) but expected (28)
> >                 Tests out of sequence.  Found (30) but expected (29)
> >                 Tests out of sequence.  Found (31) but expected (30)
>
> It seems that the status report for git-push ("ok <refname>") confuses
> the test. Will fix it in next reroll.

This morning I cannot find the specific error from the build log, but
now I find the error output inside the job tagged as "Run
ci/print-test-failures.sh":

    ++++ diff -u expect actual
    --- expect 2020-05-06 22:47:02.000000000 +0000
    +++ actual 2020-05-06 22:47:02.000000000 +0000
    @@ -2,5 +2,6 @@
    remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
    remote: # proc-receive hook
    remote: fatal: protocol error: expected "old new ref", got
"<ZERO-OID> <COMMIT-A> refs/for/master/topic"
    -To <URL/of/upstream.git>
    - ! [remote rejected] HEAD -> refs/for/master/topic (proc-receive
failed to report status)
    +fatal: unable to write flush packet: Broken pipe
    +fatal: the remote end hung up unexpectedly
    +fatal: the remote end hung up unexpectedly

In order to increase the code coverage (thanks Stolee for sending a
nice code coverage report), I add an option "--die-readline" for
test-helper (t/helper/test-proc-receive):

                if (parse_oid_hex(reader->line, &old_oid, &p) ||
                    *p++ != ' ' ||
                    parse_oid_hex(p, &new_oid, &p) ||
                    *p++ != ' ' ||
                    die_readline)
                        die("protocol error: expected 'old new ref', got '%s'",
                            reader->line);

Hook "proc-receive" hook will die early with the "--die_readline"
option, and "receive-pack" should continue running because
"receive-pack" ignores the SIG_PIPE signal, but I don't know why the
behaviors of "receive-pack" are quite different on different
platforms.

I will rewrite the test case using "grep" instead of "test_cmp", and
may send another reroll tonight.

--
Jiang Xin




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux