git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: What's cooking in git.git (Apr 2017, #04; Wed, 19)

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Apr 21, 2017, 09:50 UTC
Message-ID
<alpine.DEB.2.20.1704211135430.3480@virtualbox>
In-Reply-To
<xmqqbmrq8z4j.fsf@gitster.mtv.corp.google.com>
Hi Junio,
On Thu, 20 Apr 2017, Junio C Hamano wrote:
Show 26 quoted lines
> Lars Schneider <larsxschneider@gmail.com> writes:
> 
> >> * bw/forking-and-threading (2017-04-19) 11 commits
> >> - run-command: block signals between fork and execve
> >> - run-command: add note about forking and threading
> >> - run-command: handle dup2 and close errors in child
> >> - run-command: eliminate calls to error handling functions in child
> >> - run-command: don't die in child when duping /dev/null
> >> - run-command: prepare child environment before forking
> >> - string-list: add string_list_remove function
> >> - run-command: use the async-signal-safe execv instead of execvp
> >> - run-command: prepare command before forking
> >> - t0061: run_command executes scripts without a #! line
> >> - t5550: use write_script to generate post-update hook
> >> 
> >> The "run-command" APIimplementation has been made more robust
> >> against dead-locking in a threaded environment.
> >> 
> >> Will merge to 'next'.
> >
> > There might be a problem on Windows with this (that's just a hunch, i can't test this right now):
> > https://travis-ci.org/git/git/jobs/223830474
> 
> Thanks for keeping an eye on Travis output. My eyes learned to
> ignore the Windows section as its failures often seem to be due to
> timing out.

Part of the reason is that you push out all of the branches in one go, typically at the very end of your work day. The idea of Continuous Integration is a little orthogonal to that style, suggesting to build & test whenever new changes come into the integration branch.

As a consequence, my original setup was a little overloaded: the VM sat idle most of the time, and when you pushed, it was overloaded.

To accommodate even that use case, I managed to pry away some resources that should be mostly idle at the time you push, and that should be able to run up to 4 builds in parallel (the number "4" is not really magic, it is the number of integration branches of git.git).

Since that "let's aggregate everything and only push out the final result at the end of the day" approach does not really allow the Continuous Testing to identify problems associated with individual topic branches, I have another job that bisects the breakages (with all associated problems I reported earlier, as you apply some patches on top of really ancient commits and bisect wants to test all merge bases first) because the required time *definitely* would let Travis time out all the time. Those bisect results are even less visible than the Travis results, see e.g. https://github.com/git/git/commit/2e3a8b9035a#commitcomment-21836854.

Having said that, I do not think that it makes sense for you to change your habits, as proper Continuous Integration (as opposed to a variation of Continuous Testing that we use, really) would take a lot more of a change than you are comfortable with: it would look a lot more Pull Request centric than the current mailing list centered process.

Ciao, Dscho

Previous: Junio C HamanoNext: Christian Couder
Message 13 of 29 in “What's cooking in git.git (Apr 2017, #04; Wed, 19)”
  1. Junio C HamanoApr 20, 2017
  2. Duy NguyenApr 20, 2017
  3. Jeff KingApr 20, 2017
  4. Junio C HamanoApr 20, 2017
  5. Junio C HamanoApr 20, 2017
  6. Lars SchneiderApr 20, 2017
  7. Junio C HamanoApr 20, 2017
  8. Johannes SchindelinApr 20, 2017
  9. Brandon WilliamsApr 20, 2017
  10. Brandon WilliamsApr 20, 2017
  11. Junio C HamanoApr 21, 2017
  12. Junio C HamanoApr 20, 2017
  13. Johannes SchindelinApr 21, 2017
  14. Christian CouderApr 21, 2017
  15. Johannes SchindelinApr 22, 2017
  16. Christian CouderApr 22, 2017
  17. Johannes SchindelinApr 24, 2017
  18. Johannes SixtApr 22, 2017
  19. Johannes SchindelinApr 24, 2017
  20. Philip OakleyApr 24, 2017
  21. Christian CouderApr 25, 2017
  22. Christian CouderApr 25, 2017
  23. Johannes SixtApr 25, 2017
  24. Junio C HamanoApr 25, 2017
  25. Johannes SixtApr 25, 2017
  26. Junio C HamanoApr 24, 2017
  27. Johannes SchindelinApr 24, 2017
  28. Ævar Arnfjörð BjarmasonApr 24, 2017
  29. Junio C HamanoApr 25, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.