<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/run-command.c, branch v2.21.4</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.21.4</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.21.4'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2021-02-12T14:49:17Z</updated>
<entry>
<title>Sync with 2.19.6</title>
<updated>2021-02-12T14:49:17Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2021-02-12T14:49:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=804963848e325ff6f4213e53aeda6ef831574e48'/>
<id>urn:sha1:804963848e325ff6f4213e53aeda6ef831574e48</id>
<content type='text'>
* maint-2.19:
  Git 2.19.6
  Git 2.18.5
  Git 2.17.6
  unpack_trees(): start with a fresh lstat cache
  run-command: invalidate lstat cache after a command finished
  checkout: fix bug that makes checkout follow symlinks in leading path
</content>
</entry>
<entry>
<title>Sync with 2.18.5</title>
<updated>2021-02-12T14:47:47Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2021-02-12T14:47:47Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fb049fd85b298d386dca2e0bcf74a1f52a7b2038'/>
<id>urn:sha1:fb049fd85b298d386dca2e0bcf74a1f52a7b2038</id>
<content type='text'>
* maint-2.18:
  Git 2.18.5
  Git 2.17.6
  unpack_trees(): start with a fresh lstat cache
  run-command: invalidate lstat cache after a command finished
  checkout: fix bug that makes checkout follow symlinks in leading path
</content>
</entry>
<entry>
<title>Sync with 2.17.6</title>
<updated>2021-02-12T14:47:42Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2021-02-12T14:47:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9b77cec89b64f0910df911952ccee0cdf0046f48'/>
<id>urn:sha1:9b77cec89b64f0910df911952ccee0cdf0046f48</id>
<content type='text'>
* maint-2.17:
  Git 2.17.6
  unpack_trees(): start with a fresh lstat cache
  run-command: invalidate lstat cache after a command finished
  checkout: fix bug that makes checkout follow symlinks in leading path
</content>
</entry>
<entry>
<title>run-command: invalidate lstat cache after a command finished</title>
<updated>2021-02-12T14:47:02Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2021-02-02T21:09:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0d58fef58a6f382ba1d35f47a01cb55d8976335f'/>
<id>urn:sha1:0d58fef58a6f382ba1d35f47a01cb55d8976335f</id>
<content type='text'>
In the previous commit, we intercepted calls to `rmdir()` to invalidate
the lstat cache in the successful case, so that the lstat cache could
not have the idea that a directory exists where there is none.

The same situation can arise, of course, when a separate process is
spawned (most notably, this is the case in `submodule_move_head()`).
Obviously, we cannot know whether a directory was removed in that
process, therefore we must invalidate the lstat cache afterwards.

Note: in contrast to `lstat_cache_aware_rmdir()`, we invalidate the
lstat cache even in case of an error: the process might have removed a
directory and still have failed afterwards.

Co-authored-by: Matheus Tavares &lt;matheus.bernardino@usp.br&gt;
Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jc/run-command-report-exec-failure-fix' into maint</title>
<updated>2018-12-15T03:24:34Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-12-15T03:24:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=83243020c8537d48bdaf5d6d43c4be36ad47c8b0'/>
<id>urn:sha1:83243020c8537d48bdaf5d6d43c4be36ad47c8b0</id>
<content type='text'>
A recent update accidentally squelched an error message when the
run_command API failed to run a missing command, which has been
corrected.

* jc/run-command-report-exec-failure-fix:
  run-command: report exec failure
</content>
</entry>
<entry>
<title>run-command: report exec failure</title>
<updated>2018-12-12T08:06:50Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-12-11T05:46:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e5a329a279c7ecb5214ccc049ca659aa3ad733cf'/>
<id>urn:sha1:e5a329a279c7ecb5214ccc049ca659aa3ad733cf</id>
<content type='text'>
In 321fd823 ("run-command: mark path lookup errors with ENOENT",
2018-10-24), we rewrote the logic to execute a command by looking
in the directories on $PATH; as a side effect, a request to run a
command that is not found on $PATH is noticed even before a child
process is forked to execute it.

We however stopped to report an exec failure in such a case by
mistake.  Add a logic to report the error unless silent-exec-failure
is requested, to match the original code.

Reported-by: John Passaro &lt;john.a.passaro@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'nd/pthreads'</title>
<updated>2018-11-18T09:23:52Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-11-18T09:23:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=26b80a841ad6f2ddff855aa9bd0000a4ba81f6ff'/>
<id>urn:sha1:26b80a841ad6f2ddff855aa9bd0000a4ba81f6ff</id>
<content type='text'>
The codebase has been cleaned up to reduce "#ifndef NO_PTHREADS".

* nd/pthreads:
  Clean up pthread_create() error handling
  read-cache.c: initialize copy_len to shut up gcc 8
  read-cache.c: reduce branching based on HAVE_THREADS
  read-cache.c: remove #ifdef NO_PTHREADS
  pack-objects: remove #ifdef NO_PTHREADS
  preload-index.c: remove #ifdef NO_PTHREADS
  grep: clean up num_threads handling
  grep: remove #ifdef NO_PTHREADS
  attr.c: remove #ifdef NO_PTHREADS
  name-hash.c: remove #ifdef NO_PTHREADS
  index-pack: remove #ifdef NO_PTHREADS
  send-pack.c: move async's #ifdef NO_PTHREADS back to run-command.c
  run-command.h: include thread-utils.h instead of pthread.h
  thread-utils: macros to unconditionally compile pthreads API
</content>
</entry>
<entry>
<title>Clean up pthread_create() error handling</title>
<updated>2018-11-05T04:42:11Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2018-11-03T08:48:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2179045fd02acca83127f8d15ccd0eeb70b17400'/>
<id>urn:sha1:2179045fd02acca83127f8d15ccd0eeb70b17400</id>
<content type='text'>
Normally pthread_create() rarely fails. But with new pthreads wrapper,
pthread_create() will return ENOSYS on a system without thread support.

Threaded code _is_ protected by HAVE_THREADS and pthread_create()
should never run in the first place. But the situation could change in
the future and bugs may sneak in. Make sure that all pthread_create()
reports the error cause.

While at there, mark these strings for translation if they aren't.

Signed-off-by: Nguyễn Thái Ngọc Duy &lt;pclouds@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>send-pack.c: move async's #ifdef NO_PTHREADS back to run-command.c</title>
<updated>2018-11-05T04:42:11Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2018-11-03T08:48:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c0e40a2d66e3b95d13bbc2e6e58d7b5c029d94ab'/>
<id>urn:sha1:c0e40a2d66e3b95d13bbc2e6e58d7b5c029d94ab</id>
<content type='text'>
On systems that do not support multithread, start_async() is
implemented with fork(). This implementation details unfortunately
leak out at least in send-pack.c [1].

To keep the code base clean of NO_PTHREADS, move the this #ifdef back
to run-command.c. The new wrapper function async_with_fork() at least
helps suggest that this special "close()" is related to async in fork
mode.

[1] 09c9957cf7 (send-pack: avoid deadlock when pack-object dies early
    - 2011-04-25)

Signed-off-by: Nguyễn Thái Ngọc Duy &lt;pclouds@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>t0061: adjust to test-tool transition</title>
<updated>2018-10-25T02:41:09Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-10-25T02:41:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f67b980771b8cda5fc2093aef6dbec5d7210dcab'/>
<id>urn:sha1:f67b980771b8cda5fc2093aef6dbec5d7210dcab</id>
<content type='text'>
</content>
</entry>
</feed>
