From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Đoàn Trần Công Danh" <congdanhqx@gmail.com>,
git@vger.kernel.org, "SZEDER Gábor" <szeder.dev@gmail.com>
Subject: Re: [PATCH v4 00/12] ci: replace our Azure Pipeline by GitHub Actions
Date: Fri, 10 Apr 2020 16:37:27 +0200 (CEST) [thread overview]
Message-ID: <nycvar.QRO.7.76.6.2004101636150.46@tvgsbejvaqbjf.bet> (raw)
In-Reply-To: <nycvar.QRO.7.76.6.2004101604210.46@tvgsbejvaqbjf.bet>
[-- Attachment #1: Type: text/plain, Size: 19970 bytes --]
Hi Junio,
me again, just quickly, because the `t0031-reftable.sh --valgrind` run
just came back with this:
-- snip --
[...]
+ git gc
==28394== error calling PR_SET_PTRACER, vgdb might block
==28399== error calling PR_SET_PTRACER, vgdb might block
==28399== error calling PR_SET_PTRACER, vgdb might block
==28404== error calling PR_SET_PTRACER, vgdb might block
==28404== Invalid read of size 1
==28404== at 0x4C32CF2: strlen (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==28404== by 0x551D9AD: strdup (strdup.c:41)
==28404== by 0x39D15A: xstrdup (wrapper.c:29)
==28404== by 0x3DA9CA: reftable_log_record_copy_from (record.c:605)
==28404== by 0x3DB844: record_copy_from (record.c:968)
==28404== by 0x3D64B3: merged_iter_next (merged.c:117)
==28404== by 0x3D656B: merged_iter_next_void (merged.c:131)
==28404== by 0x3D597D: iterator_next (iter.c:45)
==28404== by 0x3D5AD2: reftable_iterator_next_log (iter.c:71)
==28404== by 0x3DE037: stack_write_compact (stack.c:718)
==28404== by 0x3DDBEA: stack_compact_locked (stack.c:632)
==28404== by 0x3DE5AD: stack_compact_range (stack.c:847)
==28404== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==28404==
{
<insert_a_suppression_name_here>
Memcheck:Addr1
fun:strlen
fun:strdup
fun:xstrdup
fun:reftable_log_record_copy_from
fun:record_copy_from
fun:merged_iter_next
fun:merged_iter_next_void
fun:iterator_next
fun:reftable_iterator_next_log
fun:stack_write_compact
fun:stack_compact_locked
fun:stack_compact_range
}
==28404==
==28404== Process terminating with default action of signal 11 (SIGSEGV)
==28404== Access not within mapped region at address 0x0
==28404== at 0x4C32CF2: strlen (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==28404== by 0x551D9AD: strdup (strdup.c:41)
==28404== by 0x39D15A: xstrdup (wrapper.c:29)
==28404== by 0x3DA9CA: reftable_log_record_copy_from (record.c:605)
==28404== by 0x3DB844: record_copy_from (record.c:968)
==28404== by 0x3D64B3: merged_iter_next (merged.c:117)
==28404== by 0x3D656B: merged_iter_next_void (merged.c:131)
==28404== by 0x3D597D: iterator_next (iter.c:45)
==28404== by 0x3D5AD2: reftable_iterator_next_log (iter.c:71)
==28404== by 0x3DE037: stack_write_compact (stack.c:718)
==28404== by 0x3DDBEA: stack_compact_locked (stack.c:632)
==28404== by 0x3DE5AD: stack_compact_range (stack.c:847)
==28404== If you believe this happened as a result of a stack
==28404== overflow in your program's main thread (unlikely but
==28404== possible), you can try to increase the size of the
==28404== main thread stack using the --main-stacksize= flag.
==28404== The main thread stack size used in this run was 8388608.
error: reflog died of signal 11
fatal: failed to run reflog
error: last command exited with $?=128
-- snap --
But now _really_ want to take a break from this,
Dscho
On Fri, 10 Apr 2020, Johannes Schindelin wrote:
> Hi Junio,
>
> On Thu, 9 Apr 2020, Junio C Hamano wrote:
>
> > Đoàn Trần Công Danh <congdanhqx@gmail.com> writes:
> >
> > > Our Azure Pipeline has served us well over the course of the past year or
> > > so, steadily catching issues before the respective patches hit the next
> > > branch.
> > >
> > > There is a GitHub-native CI system now, though, called "GitHub Actions"
> > > [https://github.com/features/actions] which is essentially on par with Azure
> > > Pipelines as far as our needs are concerned, and it brings a couple of
> > > advantages:
> > >
> > > * It is substantially easier to set up than Azure Pipelines: all you need
> > > is to add the YAML-based build definition, push to your fork on GitHub,
> > > and that's it.
> > > * The syntax is a bit easier to read than Azure Pipelines'.
> > > * We get more concurrent jobs (Azure Pipelines is limited to 10 concurrent
> > > jobs).
> > >
> > > With this change, users also no longer need to open a PR at
> > > https://github.com/git/git or at https://github.com/gitgitgadget/git just to
> > > get the benefit of a CI build.
> > >
> > > Sample run on top of dd/ci-musl-libc with dd/test-with-busybox merged:
> > > https://github.com/sgn/git/actions/runs/73179413
> > >
> > > Sample run when this series applied into git-for-windows
> > > https://github.com/git-for-windows/git/runs/568625109
> > >
> > > Change from v3:
> > > - Use build matrix
> > > - All dependencies are install by scripts
> > > - stop repeating environment variables
> > > - build failure's artifacts will be uploaded
> >
> > I did not see any particular thing that is bad in any of the three
> > series involved; do people have further comments?
>
> FWIW I consider this work good enough that I already merged it into Git
> for Windows. It should make it easier for contributors to test their
> branches "privately", in their own forks, before opening a PR (most people
> do not like to have relatively trivial issues pointed out by fellow human
> beings, but are much more okay with machines telling them what needs to be
> improved).
>
> Please mark this up as a vote of confidence from my side.
>
> > I am not exactly happy that these had to be queued on top of a merge
> > of two topics in flight, which makes it cumbersome to deal with a
> > breakage in these two other topics, though, but that would be a pain
> > only until these two topics prove to be stable enough to build on.
>
> Yes, and the fact that `ci-musl-libc` was _not_ based on top of
> `test-with-busybox` makes it a bit more awkward. I, for one, had totally
> missed that the latter patch series is _required_ in order to make the
> former work correctly. Hunting for the cause for almost an hour until Danh
> kindly pointed out that he had fixed all the issues in `test-with-busybox`
> already.
>
> > Judging from two CI runs for 'pu' ([*1*] and [*2*]), among the
> > topics that are cooking, there are only a few topics that these
> > tests are unhappy about. Perhaps those on Windows can help these
> > topics to pass these tests?
>
> I would like to point out that there is only one single topic that is
> cause for sorrow here, and it is the reftable one.
>
> Before going further, let me point out that the `pu` branch has been
> broken for quite a long time now, primarily because of `bugreport` and...
> of course because of `reftable`. Whenever `pu` included `reftable`, the CI
> builds failed. So these `reftable` problems are not a good reason, in my
> mind, to hold up the GitHub workflow patches from advancing.
>
> Seeing the short stat `35 files changed, 6719 insertions(+)` of even a
> single patch in the `reftable` patch series _really_ does not entice me to
> spend time even looking at it, certainly not at a time when I am short on
> time, let alone to try to find time to fix it.
>
> However, since you asked so nicely, I did start to look into it. First,
> let me present you the less controversial of two patches I want to show
> you:
>
> -- snip --
> From 5f42a3f6ef9cf7d90bd274e55539b145cae40e28 Mon Sep 17 00:00:00 2001
> From: Johannes Schindelin <johannes.schindelin@gmx.de>
> Date: Fri, 10 Apr 2020 14:23:40 +0200
> Subject: [PATCH] fixup??? Reftable support for git-core
>
> As I had already pointed out over a month ago in
> https://github.com/gitgitgadget/git/pull/539#issuecomment-589157008 this
> C code violates the C standard, and MS Visual C is not as lenient as
> GCC/clang on it: `struct`s cannot be initialized with `= {}`.
>
> Compile errors aside, while this code conforms to the C syntax, it feels
> more like Java when it initializes e.g. `struct object_id` only to
> _immediately_ overwrite the contents.
>
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
> refs/reftable-backend.c | 52 ++++++++++++++++++++---------------------
> 1 file changed, 26 insertions(+), 26 deletions(-)
>
> diff --git a/refs/reftable-backend.c b/refs/reftable-backend.c
> index 6e845e9c649..20c94bb403b 100644
> --- a/refs/reftable-backend.c
> +++ b/refs/reftable-backend.c
> @@ -31,7 +31,7 @@ static void clear_reftable_log_record(struct reftable_log_record *log)
> static void fill_reftable_log_record(struct reftable_log_record *log)
> {
> const char *info = git_committer_info(0);
> - struct ident_split split = {};
> + struct ident_split split = { NULL };
> int result = split_ident_line(&split, info, strlen(info));
> int sign = 1;
> assert(0 == result);
> @@ -230,7 +230,7 @@ static int reftable_transaction_abort(struct ref_store *ref_store,
> static int reftable_check_old_oid(struct ref_store *refs, const char *refname,
> struct object_id *want_oid)
> {
> - struct object_id out_oid = {};
> + struct object_id out_oid;
> int out_flags = 0;
> const char *resolved = refs_resolve_ref_unsafe(
> refs, refname, RESOLVE_REF_READING, &out_oid, &out_flags);
> @@ -287,14 +287,14 @@ static int write_transaction_table(struct reftable_writer *writer, void *arg)
> log->message = u->msg;
>
> if (u->flags & REF_HAVE_NEW) {
> - struct object_id out_oid = {};
> + struct object_id out_oid;
> int out_flags = 0;
> /* Memory owned by refs_resolve_ref_unsafe, no need to
> * free(). */
> const char *resolved = refs_resolve_ref_unsafe(
> transaction->ref_store, u->refname, 0, &out_oid,
> &out_flags);
> - struct reftable_ref_record ref = {};
> + struct reftable_ref_record ref = { NULL };
> ref.ref_name =
> (char *)(resolved ? resolved : u->refname);
> log->ref_name = ref.ref_name;
> @@ -376,8 +376,8 @@ static int write_delete_refs_table(struct reftable_writer *writer, void *argv)
> }
>
> for (int i = 0; i < arg->refnames->nr; i++) {
> - struct reftable_log_record log = {};
> - struct reftable_ref_record current = {};
> + struct reftable_log_record log = { NULL };
> + struct reftable_ref_record current = { NULL };
> fill_reftable_log_record(&log);
> log.message = xstrdup(arg->logmsg);
> log.new_hash = NULL;
> @@ -455,10 +455,10 @@ static int write_create_symref_table(struct reftable_writer *writer, void *arg)
> }
>
> {
> - struct reftable_log_record log = {};
> - struct object_id new_oid = {};
> - struct object_id old_oid = {};
> - struct reftable_ref_record current = {};
> + struct reftable_log_record log = { NULL };
> + struct object_id new_oid;
> + struct object_id old_oid;
> + struct reftable_ref_record current = { NULL };
> reftable_stack_read_ref(create->refs->stack, create->refname, ¤t);
>
> fill_reftable_log_record(&log);
> @@ -513,7 +513,7 @@ static int write_rename_table(struct reftable_writer *writer, void *argv)
> {
> struct write_rename_arg *arg = (struct write_rename_arg *)argv;
> uint64_t ts = reftable_stack_next_update_index(arg->stack);
> - struct reftable_ref_record ref = {};
> + struct reftable_ref_record ref = { NULL };
> int err = reftable_stack_read_ref(arg->stack, arg->oldname, &ref);
>
> if (err) {
> @@ -531,7 +531,7 @@ static int write_rename_table(struct reftable_writer *writer, void *argv)
> ref.update_index = ts;
>
> {
> - struct reftable_ref_record todo[2] = {};
> + struct reftable_ref_record todo[2] = { { NULL } };
> todo[0].ref_name = (char *)arg->oldname;
> todo[0].update_index = ts;
> /* leave todo[0] empty */
> @@ -545,7 +545,7 @@ static int write_rename_table(struct reftable_writer *writer, void *argv)
> }
>
> if (ref.value != NULL) {
> - struct reftable_log_record todo[2] = {};
> + struct reftable_log_record todo[2] = { { NULL } };
> fill_reftable_log_record(&todo[0]);
> fill_reftable_log_record(&todo[1]);
>
> @@ -688,12 +688,12 @@ reftable_for_each_reflog_ent_newest_first(struct ref_store *ref_store,
> const char *refname,
> each_reflog_ent_fn fn, void *cb_data)
> {
> - struct reftable_iterator it = {};
> + struct reftable_iterator it = { NULL };
> struct git_reftable_ref_store *refs =
> (struct git_reftable_ref_store *)ref_store;
> struct reftable_merged_table *mt = NULL;
> int err = 0;
> - struct reftable_log_record log = {};
> + struct reftable_log_record log = { NULL };
>
> if (refs->err < 0) {
> return refs->err;
> @@ -712,8 +712,8 @@ reftable_for_each_reflog_ent_newest_first(struct ref_store *ref_store,
> }
>
> {
> - struct object_id old_oid = {};
> - struct object_id new_oid = {};
> + struct object_id old_oid;
> + struct object_id new_oid;
> const char *full_committer = "";
>
> hashcpy(old_oid.hash, log.old_hash);
> @@ -744,7 +744,7 @@ reftable_for_each_reflog_ent_oldest_first(struct ref_store *ref_store,
> const char *refname,
> each_reflog_ent_fn fn, void *cb_data)
> {
> - struct reftable_iterator it = {};
> + struct reftable_iterator it = { NULL };
> struct git_reftable_ref_store *refs =
> (struct git_reftable_ref_store *)ref_store;
> struct reftable_merged_table *mt = NULL;
> @@ -760,7 +760,7 @@ reftable_for_each_reflog_ent_oldest_first(struct ref_store *ref_store,
> err = reftable_merged_table_seek_log(mt, &it, refname);
>
> while (err == 0) {
> - struct reftable_log_record log = {};
> + struct reftable_log_record log = { NULL };
> err = reftable_iterator_next_log(it, &log);
> if (err != 0) {
> break;
> @@ -780,8 +780,8 @@ reftable_for_each_reflog_ent_oldest_first(struct ref_store *ref_store,
>
> for (int i = len; i--;) {
> struct reftable_log_record *log = &logs[i];
> - struct object_id old_oid = {};
> - struct object_id new_oid = {};
> + struct object_id old_oid;
> + struct object_id new_oid;
> const char *full_committer = "";
>
> hashcpy(old_oid.hash, log->old_hash);
> @@ -903,8 +903,8 @@ static int reftable_reflog_expire(struct ref_store *ref_store,
> struct reflog_expiry_arg arg = {
> .refs = refs,
> };
> - struct reftable_log_record log = {};
> - struct reftable_iterator it = {};
> + struct reftable_log_record log = { NULL };
> + struct reftable_iterator it = { NULL };
> int err = 0;
> if (refs->err < 0) {
> return refs->err;
> @@ -917,8 +917,8 @@ static int reftable_reflog_expire(struct ref_store *ref_store,
> }
>
> while (1) {
> - struct object_id ooid = {};
> - struct object_id noid = {};
> + struct object_id ooid;
> + struct object_id noid;
>
> int err = reftable_iterator_next_log(it, &log);
> if (err < 0) {
> @@ -950,7 +950,7 @@ static int reftable_read_raw_ref(struct ref_store *ref_store,
> {
> struct git_reftable_ref_store *refs =
> (struct git_reftable_ref_store *)ref_store;
> - struct reftable_ref_record ref = {};
> + struct reftable_ref_record ref = { NULL };
> int err = 0;
> if (refs->err < 0) {
> return refs->err;
> -- snap --
>
> This patch should fix the `vs-build` job in the Azure Pipeline as well as
> in the GitHub workflow.
>
> However, it does _not_ fix the test failure on Windows. When I tried to
> investigate this, I wanted to compare the results between Windows and
> Linux (WSL, of course, it is a major time saver for me these days because
> I don't have to power up a VM, and I can access WSL files from Windows and
> vice versa), and it turns out that the `000000000002-000000000002.ref`
> file is different, it even has different sizes (242 bytes on Windows
> instead of 268 bytes on Linux), and notably it contains the string `HEAD`
> on Windows and `refs/heads/master` on Linux, but not vice versa.
>
> So I dug a bit deeper and was stopped rudely by the fact that the
> t0031-reftable.sh script produces different output every time it runs.
> Because it does not even use `test_commit`.
>
> Therefore, let me present you with this patch (whose commit message
> conveys a rather alarming indication that this endeavor of fixing
> `reftable` could become a major time sink):
>
> -- snip -
> From 6ba47e70a2eb8efe2116c12eb950ddb90c473d11 Mon Sep 17 00:00:00 2001
> From: Johannes Schindelin <johannes.schindelin@gmx.de>
> Date: Fri, 10 Apr 2020 16:10:53 +0200
> Subject: [PATCH] fixup??? Reftable support for git-core
>
> The test for the reftable functionality should use the convenience
> functions we provide for test scripts. Using `test_commit` in particular
> does help with reproducible output (otherwise the SHA-1s will change
> together with the time the tests were run).
>
> Currently, this here seemingly innocuous change causes quite a few
> warnings throughout the test, though, e.g. this slur of warnings when
> committing the last commit in the test script:
>
> warning: bad replace ref name: e
> warning: bad replace ref name: ber-1
> warning: bad replace ref name: ber-2
> warning: bad replace ref name: ber-3
> warning: bad replace ref name: ber-4
> warning: bad replace ref name: ber-5
> warning: bad replace ref name: ber-6
> warning: bad replace ref name: ber-7
> warning: bad replace ref name: ber-8
> warning: bad replace ref name: ber-9
>
> This is notably _not_ a problem that was introduced by this here patch,
> of course, but a very real concern about the reftable patches, most
> likely the big one that introduces the reftable library in one fell
> swoop.
>
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
> t/t0031-reftable.sh | 20 +++++++++-----------
> 1 file changed, 9 insertions(+), 11 deletions(-)
>
> diff --git a/t/t0031-reftable.sh b/t/t0031-reftable.sh
> index 3ebf13c2f42..4bc7bd8167f 100755
> --- a/t/t0031-reftable.sh
> +++ b/t/t0031-reftable.sh
> @@ -8,28 +8,26 @@ test_description='reftable basics'
> . ./test-lib.sh
>
> test_expect_success 'basic operation of reftable storage' '
> - git init --ref-storage=reftable repo && (
> - cd repo &&
> - echo "hello" >world.txt &&
> - git add world.txt &&
> - git commit -m "first post" &&
> - test_write_lines HEAD refs/heads/master >expect &&
> + rm -rf .git &&
> + git init --ref-storage=reftable &&
> + mv .git/hooks .git/hooks-disabled &&
> + test_commit file &&
> + test_write_lines HEAD refs/heads/master refs/tags/file >expect &&
> git show-ref &&
> git show-ref | cut -f2 -d" " > actual &&
> test_cmp actual expect &&
> for count in $(test_seq 1 10)
> do
> - echo "hello" >>world.txt
> - git commit -m "number ${count}" world.txt ||
> + test_commit "number $count" file.t $count number-$count ||
> return 1
> done &&
> git gc &&
> - nfiles=$(ls -1 .git/reftable | wc -l ) &&
> - test ${nfiles} = "2" &&
> + ls -1 .git/reftable >table-files &&
> + test_line_count = 2 table-files &&
> git reflog refs/heads/master >output &&
> test_line_count = 11 output &&
> grep "commit (initial): first post" output &&
> - grep "commit: number 10" output )
> + grep "commit: number 10" output
> '
>
> test_done
> -- snap --
>
> While I am very happy with the post-image of this diff, I am super unhappy
> about the output of it. It makes me believe that this `reftable` patch
> series is in serious need of being "incrementalized" _after the fact_.
> Otherwise it will be simply impossible to build enough confidence in the
> correctness of it, especially given the fact that it obviously does some
> incorrect things right now (see the "bad replace ref name" warning
> mentioned above).
>
> I'll take a break from this now, but I would like to encourage you to
> apply both patches as `SQUASH???` on top of `hn/reftable` for the time
> being.
>
> Ciao,
> Dscho
>
> >
> >
> > [References]
> >
> > *1* https://github.com/git/git/actions/runs/74687673 is 'pu' with
> > all cooking topics.
> >
> > *2* https://github.com/git/git/actions/runs/74741625 is 'pu' with
> > some topics excluded.
> >
> >
next prev parent reply other threads:[~2020-04-10 14:37 UTC|newest]
Thread overview: 110+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-31 12:48 [PATCH 0/5] ci: replace our Azure Pipeline by GitHub Actions Johannes Schindelin via GitGitGadget
2020-03-31 12:48 ` [PATCH 1/5] ci/lib: if CI type is unknown, show the environment variables Johannes Schindelin via GitGitGadget
2020-03-31 12:48 ` [PATCH 2/5] ci/lib: allow running in GitHub Actions Johannes Schindelin via GitGitGadget
2020-04-03 8:46 ` SZEDER Gábor
2020-04-04 20:08 ` Johannes Schindelin
2020-04-05 0:01 ` Danh Doan
2020-04-07 22:41 ` Johannes Schindelin
2020-04-10 15:31 ` SZEDER Gábor
2020-04-10 19:10 ` Junio C Hamano
2020-04-12 21:42 ` Johannes Schindelin
2020-04-12 22:12 ` Junio C Hamano
2020-04-12 22:25 ` Junio C Hamano
2020-03-31 12:48 ` [PATCH 3/5] ci: configure GitHub Actions for CI/PR Johannes Schindelin via GitGitGadget
2020-04-03 22:07 ` SZEDER Gábor
2020-04-04 17:59 ` Johannes Schindelin
2020-04-04 23:55 ` Danh Doan
2020-03-31 12:48 ` [PATCH 4/5] README: add a build badge for the GitHub Actions runs Johannes Schindelin via GitGitGadget
2020-03-31 12:48 ` [PATCH 5/5] ci: retire the Azure Pipelines definition Johannes Schindelin via GitGitGadget
2020-03-31 14:46 ` [PATCH 0/5] ci: replace our Azure Pipeline by GitHub Actions Danh Doan
2020-03-31 18:47 ` Junio C Hamano
2020-04-01 15:55 ` [PATCH v2 0/6] " Đoàn Trần Công Danh
2020-04-01 15:55 ` [PATCH v2 1/6] ci/lib: if CI type is unknown, show the environment variables Đoàn Trần Công Danh
2020-04-01 15:55 ` [PATCH v2 2/6] ci/lib: allow running in GitHub Actions Đoàn Trần Công Danh
2020-04-01 15:55 ` [PATCH v2 3/6] ci/lib: set TERM environment variable if not exist Đoàn Trần Công Danh
2020-04-01 15:55 ` [PATCH v2 4/6] ci: configure GitHub Actions for CI/PR Đoàn Trần Công Danh
2020-04-01 15:55 ` [PATCH v2 5/6] README: add a build badge for the GitHub Actions runs Đoàn Trần Công Danh
2020-04-01 15:55 ` [PATCH v2 6/6] ci: retire the Azure Pipelines definition Đoàn Trần Công Danh
2020-04-01 21:23 ` [PATCH v2 0/6] ci: replace our Azure Pipeline by GitHub Actions Junio C Hamano
2020-04-02 0:14 ` Danh Doan
2020-04-02 13:16 ` [PATCH v3 " Đoàn Trần Công Danh
2020-04-02 13:16 ` [PATCH v3 1/6] ci/lib: if CI type is unknown, show the environment variables Đoàn Trần Công Danh
2020-04-02 13:16 ` [PATCH v3 2/6] ci/lib: allow running in GitHub Actions Đoàn Trần Công Danh
2020-04-02 13:16 ` [PATCH v3 3/6] ci/lib: set TERM environment variable if not exist Đoàn Trần Công Danh
2020-04-02 13:16 ` [PATCH v3 4/6] ci: configure GitHub Actions for CI/PR Đoàn Trần Công Danh
2020-04-02 13:16 ` [PATCH v3 5/6] README: add a build badge for the GitHub Actions runs Đoàn Trần Công Danh
2020-04-02 13:17 ` [PATCH v3 6/6] ci: retire the Azure Pipelines definition Đoàn Trần Công Danh
2020-04-08 4:05 ` [PATCH v4 00/12] ci: replace our Azure Pipeline by GitHub Actions Đoàn Trần Công Danh
2020-04-08 4:05 ` [PATCH v4 01/12] ci/lib: if CI type is unknown, show the environment variables Đoàn Trần Công Danh
2020-04-08 4:05 ` [PATCH v4 02/12] ci/lib: allow running in GitHub Actions Đoàn Trần Công Danh
2020-04-08 4:05 ` [PATCH v4 03/12] ci/lib: set TERM environment variable if not exist Đoàn Trần Công Danh
2020-04-08 4:05 ` [PATCH v4 04/12] ci: fix the `jobname` of the `GETTEXT_POISON` job Đoàn Trần Công Danh
2020-04-08 4:05 ` [PATCH v4 05/12] ci: explicit install all required packages Đoàn Trần Công Danh
2020-04-10 15:53 ` SZEDER Gábor
2020-04-10 16:07 ` Danh Doan
2020-04-10 16:21 ` Junio C Hamano
2020-04-08 4:05 ` [PATCH v4 06/12] ci: run gem with sudo to install asciidoctor Đoàn Trần Công Danh
2020-04-08 4:05 ` [PATCH v4 07/12] ci: configure GitHub Actions for CI/PR Đoàn Trần Công Danh
2020-04-08 4:05 ` [PATCH v4 08/12] README: add a build badge for the GitHub Actions runs Đoàn Trần Công Danh
2020-04-08 4:05 ` [PATCH v4 09/12] ci: retire the Azure Pipelines definition Đoàn Trần Công Danh
2020-04-08 4:05 ` [PATCH v4 10/12] tests: when run in Bash, annotate test failures with file name/line number Đoàn Trần Công Danh
2020-04-08 4:05 ` [PATCH v4 11/12] ci: add a problem matcher for GitHub Actions Đoàn Trần Công Danh
2020-04-08 4:05 ` [PATCH v4 12/12] ci: let GitHub Actions upload failed tests' directories Đoàn Trần Công Danh
2020-04-09 21:19 ` [PATCH v4 00/12] ci: replace our Azure Pipeline by GitHub Actions Junio C Hamano
2020-04-10 14:34 ` Johannes Schindelin
2020-04-10 14:37 ` Johannes Schindelin [this message]
2020-04-10 17:35 ` Danh Doan
2020-04-10 15:42 ` Junio C Hamano
2020-04-10 17:41 ` Danh Doan
2020-04-16 0:49 ` Junio C Hamano
2020-04-16 1:28 ` fixing ci failure of 'pu' with the es/bugreport topic Junio C Hamano
2020-04-16 1:55 ` Emily Shaffer
2020-04-16 3:20 ` Junio C Hamano
2020-04-16 3:45 ` Elijah Newren
2020-04-16 4:10 ` Emily Shaffer
2020-04-16 4:57 ` Junio C Hamano
2020-04-16 11:26 ` Danh Doan
2020-04-16 12:05 ` Johannes Schindelin
2020-04-16 12:08 ` [PATCH v4 00/12] ci: replace our Azure Pipeline by GitHub Actions Johannes Schindelin
2020-04-16 15:55 ` Junio C Hamano
2020-04-10 17:18 ` [PATCH v5 " Đoàn Trần Công Danh
2020-04-10 17:18 ` [PATCH v5 01/12] ci/lib: if CI type is unknown, show the environment variables Đoàn Trần Công Danh
2020-04-10 17:18 ` [PATCH v5 02/12] ci/lib: allow running in GitHub Actions Đoàn Trần Công Danh
2020-04-10 17:18 ` [PATCH v5 03/12] ci/lib: set TERM environment variable if not exist Đoàn Trần Công Danh
2020-04-10 17:18 ` [PATCH v5 04/12] ci: fix the `jobname` of the `GETTEXT_POISON` job Đoàn Trần Công Danh
2020-04-10 17:18 ` [PATCH v5 05/12] ci: explicit install all required packages Đoàn Trần Công Danh
2020-04-10 17:18 ` [PATCH v5 06/12] ci: run gem with sudo to install asciidoctor Đoàn Trần Công Danh
2020-04-10 17:18 ` [PATCH v5 07/12] ci: configure GitHub Actions for CI/PR Đoàn Trần Công Danh
2020-04-10 17:18 ` [PATCH v5 08/12] README: add a build badge for the GitHub Actions runs Đoàn Trần Công Danh
2020-04-10 17:18 ` [PATCH v5 09/12] ci: retire the Azure Pipelines definition Đoàn Trần Công Danh
2020-04-10 17:18 ` [PATCH v5 10/12] tests: when run in Bash, annotate test failures with file name/line number Đoàn Trần Công Danh
2020-05-04 17:46 ` Carlo Marcelo Arenas Belón
2020-05-04 23:25 ` Danh Doan
2020-05-05 0:35 ` Junio C Hamano
2020-05-06 7:30 ` Carlo Marcelo Arenas Belón
2020-05-06 12:54 ` Johannes Schindelin
2020-05-06 13:46 ` Carlo Marcelo Arenas Belón
2020-05-06 14:33 ` Johannes Schindelin
2020-05-07 6:10 ` Carlo Marcelo Arenas Belón
2020-05-06 16:33 ` Junio C Hamano
2020-05-05 0:54 ` Carlo Marcelo Arenas Belón
2020-05-15 13:16 ` Alban Gruin
2020-05-15 15:00 ` [RFC PATCH] t: move metadata into TAP test description Carlo Marcelo Arenas Belón
2020-05-15 15:08 ` Eric Sunshine
2020-05-15 15:38 ` Alban Gruin
2020-05-15 15:45 ` Carlo Marcelo Arenas Belón
2020-05-15 16:50 ` Junio C Hamano
2020-05-15 17:14 ` Carlo Marcelo Arenas Belón
2020-05-15 17:23 ` Junio C Hamano
2020-05-15 22:42 ` Johannes Schindelin
2020-05-15 22:57 ` Junio C Hamano
2020-05-15 17:21 ` [PATCH 0/2] Unbreak TAP output under bash Junio C Hamano
2020-05-15 17:21 ` [PATCH 1/2] Revert "t/test_lib: avoid naked bash arrays in file_lineno" Junio C Hamano
2020-05-15 17:21 ` [PATCH 2/2] Revert "tests: when run in Bash, annotate test failures with file name/line number" Junio C Hamano
2020-05-15 16:38 ` [RFC PATCH] t: move metadata into TAP test description Junio C Hamano
2020-05-15 17:22 ` Carlo Marcelo Arenas Belón
2020-05-15 19:04 ` Alban Gruin
2020-05-15 15:28 ` [PATCH v5 10/12] tests: when run in Bash, annotate test failures with file name/line number Carlo Marcelo Arenas Belón
2020-05-15 15:33 ` Alban Gruin
2020-04-10 17:18 ` [PATCH v5 11/12] ci: add a problem matcher for GitHub Actions Đoàn Trần Công Danh
2020-04-10 17:18 ` [PATCH v5 12/12] ci: let GitHub Actions upload failed tests' directories Đoàn Trần Công Danh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=nycvar.QRO.7.76.6.2004101636150.46@tvgsbejvaqbjf.bet \
--to=johannes.schindelin@gmx.de \
--cc=congdanhqx@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=szeder.dev@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).