<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/compat, branch v2.19.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.19.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.19.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2018-11-21T13:57:44Z</updated>
<entry>
<title>Merge branch 'js/mingw-o-append' into maint</title>
<updated>2018-11-21T13:57:44Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-11-21T13:57:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e1372c37de9bbca8a96db10fe8ab7b3a420c9108'/>
<id>urn:sha1:e1372c37de9bbca8a96db10fe8ab7b3a420c9108</id>
<content type='text'>
Further fix for O_APPEND emulation on Windows

* js/mingw-o-append:
  mingw: fix mingw_open_append to work with named pipes
  t0051: test GIT_TRACE to a windows named pipe
</content>
</entry>
<entry>
<title>mingw: fix mingw_open_append to work with named pipes</title>
<updated>2018-09-11T20:54:54Z</updated>
<author>
<name>Jeff Hostetler</name>
<email>jeffhost@microsoft.com</email>
</author>
<published>2018-09-11T20:06:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=eeaf7ddac7594636b517497fff3ab181966edbcc'/>
<id>urn:sha1:eeaf7ddac7594636b517497fff3ab181966edbcc</id>
<content type='text'>
Signed-off-by: Jeff Hostetler &lt;jeffhost@microsoft.com&gt;
Acked-by: Johannes Sixt &lt;j6t@kdbg.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'en/incl-forward-decl'</title>
<updated>2018-08-20T19:41:32Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-08-20T19:41:32Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5ade03446430f1190fdf1eca8b8fde5f63367110'/>
<id>urn:sha1:5ade03446430f1190fdf1eca8b8fde5f63367110</id>
<content type='text'>
Code hygiene improvement for the header files.

* en/incl-forward-decl:
  Remove forward declaration of an enum
  compat/precompose_utf8.h: use more common include guard style
  urlmatch.h: fix include guard
  Move definition of enum branch_track from cache.h to branch.h
  alloc: make allocate_alloc_state and clear_alloc_state more consistent
  Add missing includes and forward declarations
</content>
</entry>
<entry>
<title>Merge branch 'js/mingw-o-append'</title>
<updated>2018-08-20T18:33:52Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-08-20T18:33:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d18d09bb81c5b1d0736b8945ca2a9e510286a2b4'/>
<id>urn:sha1:d18d09bb81c5b1d0736b8945ca2a9e510286a2b4</id>
<content type='text'>
Among the three codepaths we use O_APPEND to open a file for
appending, one used for writing GIT_TRACE output requires O_APPEND
implementation that behaves sensibly when multiple processes are
writing to the same file.  POSIX emulation used in the Windows port
has been updated to improve in this area.

* js/mingw-o-append:
  mingw: enable atomic O_APPEND
</content>
</entry>
<entry>
<title>compat/precompose_utf8.h: use more common include guard style</title>
<updated>2018-08-15T18:52:09Z</updated>
<author>
<name>Elijah Newren</name>
<email>newren@gmail.com</email>
</author>
<published>2018-08-15T17:54:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f790d8125279e44d7611f17466b0248fbdea8ed1'/>
<id>urn:sha1:f790d8125279e44d7611f17466b0248fbdea8ed1</id>
<content type='text'>
Reviewed-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Signed-off-by: Elijah Newren &lt;newren@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>mingw: enable atomic O_APPEND</title>
<updated>2018-08-13T22:22:19Z</updated>
<author>
<name>Johannes Sixt</name>
<email>j6t@kdbg.org</email>
</author>
<published>2018-08-13T19:02:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d641097589160eb795127d8dbcb14c877c217b60'/>
<id>urn:sha1:d641097589160eb795127d8dbcb14c877c217b60</id>
<content type='text'>
The Windows CRT implements O_APPEND "manually": on write() calls, the
file pointer is set to EOF before the data is written. Clearly, this is
not atomic. And in fact, this is the root cause of failures observed in
t5552-skipping-fetch-negotiator.sh and t5503-tagfollow.sh, where
different processes write to the same trace file simultanously; it also
occurred in t5400-send-pack.sh, but there it was worked around in
71406ed4d6 ("t5400: avoid concurrent writes into a trace file",
2017-05-18).

Fortunately, Windows does support atomic O_APPEND semantics using the
file access mode FILE_APPEND_DATA. Provide an implementation that does.

This implementation is minimal in such a way that it only implements
the open modes that are actually used in the Git code base. Emulation
for other modes can be added as necessary later. To become aware of
the necessity early, the unusal error ENOSYS is reported if an
unsupported mode is encountered.

Diagnosed-by: Johannes Schindelin &lt;Johannes.Schindelin@gmx.de&gt;
Helped-by: Jeff Hostetler &lt;git@jeffhostetler.com&gt;
Signed-off-by: Johannes Sixt &lt;j6t@kdbg.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'nd/command-list'</title>
<updated>2018-07-24T21:50:50Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-07-24T21:50:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b7d510e8d55968eb448dc908f95c8e717d9e52cc'/>
<id>urn:sha1:b7d510e8d55968eb448dc908f95c8e717d9e52cc</id>
<content type='text'>
Build doc update for Windows.

* nd/command-list:
  vcbuild/README: update to accommodate for missing common-cmds.h
</content>
</entry>
<entry>
<title>vcbuild/README: update to accommodate for missing common-cmds.h</title>
<updated>2018-07-16T21:30:34Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2018-06-22T11:09:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ede8d89bb1199718c6219cc27d34b9eb56bbe761'/>
<id>urn:sha1:ede8d89bb1199718c6219cc27d34b9eb56bbe761</id>
<content type='text'>
In 60f487ac0ef (Remove common-cmds.h, 2018-05-10), we forgot to adjust
this README when removing the common-cmds.h file.

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>mingw/msvc: use the new-style RUNTIME_PREFIX helper</title>
<updated>2018-04-11T09:10:28Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2018-04-10T15:05:46Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=86e254584bb466aaf1bacbdf4a1ade924c8bdbe9'/>
<id>urn:sha1:86e254584bb466aaf1bacbdf4a1ade924c8bdbe9</id>
<content type='text'>
This change also allows us to stop overriding argv[0] with the absolute
path of the executable, allowing us to preserve e.g. the case of the
executable's file name.

This fixes https://github.com/git-for-windows/git/issues/1496 partially.

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>mingw: abort on invalid strftime formats</title>
<updated>2018-03-19T17:53:17Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2018-03-19T16:49:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9ee0540a40988cf56611a341232dcb5bed6d1f06'/>
<id>urn:sha1:9ee0540a40988cf56611a341232dcb5bed6d1f06</id>
<content type='text'>
On Windows, strftime() does not silently ignore invalid formats, but
warns about them and then returns 0 and sets errno to EINVAL.

Unfortunately, Git does not expect such a behavior, as it disagrees
with strftime()'s semantics on Linux. As a consequence, Git
misinterprets the return value 0 as "I need more space" and grows the
buffer. As the larger buffer does not fix the format, the buffer grows
and grows and grows until we are out of memory and abort.

Ideally, we would switch off the parameter validation just for
strftime(), but we cannot even override the invalid parameter handler
via _set_thread_local_invalid_parameter_handler() using MINGW because
that function is not declared. Even _set_invalid_parameter_handler(),
which *is* declared, does not help, as it simply does... nothing.

So let's just bite the bullet and override strftime() for MINGW and
abort on an invalid format string. While this does not provide the
best user experience, it is the best we can do.

See https://msdn.microsoft.com/en-us/library/fe06s4ak.aspx for more
details.

This fixes https://github.com/git-for-windows/git/issues/863

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
