git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Michael Blume <blume.mike@gmail.com>,
	Git Mailing List <git@vger.kernel.org>
Subject: Re: [PATCH] t1410: fix breakage on case-insensitive filesystems
Date: Mon, 10 Nov 2014 02:04:59 -0500	[thread overview]
Message-ID: <20141110070459.GC7677@peff.net> (raw)
In-Reply-To: <CAPc5daUrUZ135sbSuZn6DXmN_momR6KxNyN9cNdTbzwbD6Uu0A@mail.gmail.com>

On Sun, Nov 09, 2014 at 10:47:52PM -0800, Junio C Hamano wrote:

> On Sun, Nov 9, 2014 at 10:30 PM, Jeff King <peff@peff.net> wrote:
> >
> > I know you "make test" before pushing out the results of any integration
> > you do. And I recall that for a while (and maybe still?) you even did so
> > on VMs of a few common platforms. OS X is notoriously irritating to run
> > in a VM, but would you be interested in a network-accessible install
> > that you could push to and "make test" on as part of your routine?
> >
> > If what Michael is offering cannot do that, I am sure I can get GitHub
> > to set something up.
> 
> Even if it were network-accessible, the latency for doing an integration
> cycle and pushing there and waiting for the tests to come back may
> make it impractical to use it as "part of pre-pushout test".

I had the impression you were already doing "for i in my_vms; do git
push $i && ssh $i make test; done", so in theory this could be done in
parallel. But yeah, I definitely wouldn't want to add latency to your
workflow.

> But I would think that the project certainly would benefit if a
> post-receive hook at Github did an automated test on the tip of
> 'pu' and bisected a breakage, if found, to pinpoint the patch
> that breaks. It could even send a notice to the author of the
> non-portable patch ;-).

Yeah, you're right. Testing on "pu" is probably enough. Coupled with
automated bisection, the "pinpointing" part is not that important, and
pu is often "early enough" to catch problems before people try to build
on top of them. So I think if Michael is still willing to set up his
build box, just pulling and building your "pu" automatically would be a
good start.

GitHub supports trigger hooks on pushes, but I do not think that is even
necessary here. Just polling once or twice a day would probably give us
good enough turn-around time.

I think somebody just needs to write the auto-bisect script. I suspect
the simplest form is something like:

  # fetch a new version; exit early if we already checked this one
  git fetch
  test "$(git rev-parse pu-ok)" = "$(git rev-parse origin/pu)" &&exit 0
  git reset --hard origin/pu

  # quick path: all tests succeed
  if make test; then
    git tag -f pu-ok HEAD
    exit 0
  fi

  # slow path: bisect the actual commit. We do not need worry about
  # cutting each bisection step down to the minimal size (e.g., finding
  # the actual failing test), because this should run only infrequently.
  git bisect start HEAD pu-ok
  git bisect run make test

The real work would be in wrapping it up in a cron-job or similar so
that it produces no output on success, and sends an email (or whatever)
with the bisect results when it fails.

-Peff

  reply	other threads:[~2014-11-10  7:05 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-08 19:28 Test failure Michael Blume
2014-11-09  1:43 ` Jeff King
2014-11-09  1:59   ` [PATCH] t1410: fix breakage on case-insensitive filesystems Jeff King
2014-11-09 17:34     ` Michael Blume
2014-11-09 17:48       ` Junio C Hamano
2014-11-10  6:30         ` Jeff King
2014-11-10  6:47           ` Junio C Hamano
2014-11-10  7:04             ` Jeff King [this message]
2014-11-09 20:04       ` Torsten Bögershausen
2014-11-09 21:36         ` Michael Blume
2014-11-09 21:42           ` Torsten Bögershausen
2014-11-10  2:46             ` Michael Blume
2014-11-10  2:56     ` Junio C Hamano
2014-11-10  6:09       ` Jeff King
2014-11-12 20:20     ` Johannes Sixt
2014-11-12 21:59       ` Jeff King
2014-11-13  8:50         ` Johannes Sixt
2014-11-13  9:08           ` Jeff King
2014-11-13 16:30             ` Junio C Hamano
2014-11-14 19:11             ` Johannes Sixt
2014-11-14 19:23               ` Jeff King
2014-11-14 20:03               ` Junio C Hamano
2014-11-14 21:04               ` Andreas Schwab
2014-11-15  8:27                 ` Johannes Sixt
2014-11-16 21:06                   ` [PATCH v2] Windows: correct detection of EISDIR in mingw_open() Johannes Sixt
2014-11-09  5:44   ` Test failure Michael Blume

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141110070459.GC7677@peff.net \
    --to=peff@peff.net \
    --cc=blume.mike@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.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.
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 NNTP newsgroup(s).