<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/Makefile, 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>2019-02-19T18:22:21Z</updated>
<entry>
<title>tests: teach the test-tool to generate NUL bytes and use it</title>
<updated>2019-02-19T18:22:21Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2019-02-14T21:33:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d5cfd142ec1425cec44a7c74a42e5b81112460c3'/>
<id>urn:sha1:d5cfd142ec1425cec44a7c74a42e5b81112460c3</id>
<content type='text'>
In cc95bc2025 (t5562: replace /dev/zero with a pipe from
generate_zero_bytes, 2019-02-09), we replaced usage of /dev/zero (which
is not available on NonStop, apparently) by a Perl script snippet to
generate NUL bytes.

Sadly, it does not seem to work on NonStop, as t5562 reportedly hangs.

Worse, this also hangs in the Ubuntu 16.04 agents of the CI builds on
Azure Pipelines: for some reason, the Perl script snippet that is run
via `generate_zero_bytes` in t5562's 'CONTENT_LENGTH overflow ssite_t'
test case tries to write out an infinite amount of NUL bytes unless a
broken pipe is encountered, that snippet never encounters the broken
pipe, and keeps going until the build times out.

Oddly enough, this does not reproduce on the Windows and macOS agents,
nor in a local Ubuntu 18.04.

This developer tried for a day to figure out the exact circumstances
under which this hang happens, to no avail, the details remain a
mystery.

In the end, though, what counts is that this here change incidentally
fixes that hang (maybe also on NonStop?). Even more positively, it gets
rid of yet another unnecessary Perl invocation.

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>Merge branch 'bc/utf16-portability-fix'</title>
<updated>2019-02-14T02:18:41Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-02-14T02:18:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=18f9fb687f708b568301a4af87194fd72e4010e0'/>
<id>urn:sha1:18f9fb687f708b568301a4af87194fd72e4010e0</id>
<content type='text'>
The code and tests assume that the system supplied iconv() would
always use BOM in its output when asked to encode to UTF-16 (or
UTF-32), but apparently some implementations output big-endian
without BOM.  A compile-time knob has been added to help such
systems (e.g. NonStop) to add BOM to the output to increase
portability.

* bc/utf16-portability-fix:
  utf8: handle systems that don't write BOM for UTF-16
</content>
</entry>
<entry>
<title>Merge branch 'nd/fileno-may-be-macro'</title>
<updated>2019-02-14T02:18:41Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-02-14T02:18:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1db999ce8d369dbf20532f1b2ea8cbbcf6f2cc7b'/>
<id>urn:sha1:1db999ce8d369dbf20532f1b2ea8cbbcf6f2cc7b</id>
<content type='text'>
* nd/fileno-may-be-macro:
  git-compat-util: work around fileno(fp) that is a macro
</content>
</entry>
<entry>
<title>git-compat-util: work around fileno(fp) that is a macro</title>
<updated>2019-02-12T18:01:59Z</updated>
<author>
<name>Duy Nguyen</name>
<email>pclouds@gmail.com</email>
</author>
<published>2019-02-12T14:14:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=18a4f6be6b4cfc34de6f80c36ab3ef951a0f7164'/>
<id>urn:sha1:18a4f6be6b4cfc34de6f80c36ab3ef951a0f7164</id>
<content type='text'>
On various BSD's, fileno(fp) is implemented as a macro that directly
accesses the fields in the FILE * object, which breaks a function that
accepts a "void *fp" parameter and calls fileno(fp) and expect it to
work.

Work it around by adding a compile-time knob FILENO_IS_A_MACRO that
inserts a real helper function in the middle of the callchain.

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>utf8: handle systems that don't write BOM for UTF-16</title>
<updated>2019-02-12T02:20:07Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2019-02-12T00:52:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=79444c92943048f9ac62e9311038ebe43f5f0982'/>
<id>urn:sha1:79444c92943048f9ac62e9311038ebe43f5f0982</id>
<content type='text'>
When serializing UTF-16 (and UTF-32), there are three possible ways to
write the stream. One can write the data with a BOM in either big-endian
or little-endian format, or one can write the data without a BOM in
big-endian format.

Most systems' iconv implementations choose to write it with a BOM in
some endianness, since this is the most foolproof, and it is resistant
to misinterpretation on Windows, where UTF-16 and the little-endian
serialization are very common. For compatibility with Windows and to
avoid accidental misuse there, Git always wants to write UTF-16 with a
BOM, and will refuse to read UTF-16 without it.

However, musl's iconv implementation writes UTF-16 without a BOM,
relying on the user to interpret it as big-endian. This causes t0028 and
the related functionality to fail, since Git won't read the file without
a BOM.

Add a Makefile and #define knob, ICONV_OMITS_BOM, that can be set if the
iconv implementation has this behavior. When set, Git will write a BOM
manually for UTF-16 and UTF-32 and then force the data to be written in
UTF-16BE or UTF-32BE. We choose big-endian behavior here because the
tests use the raw "UTF-16" encoding, which will be big-endian when the
implementation requires this knob to be set.

Update the tests to detect this case and write test data with an added
BOM if necessary. Always write the BOM in the tests in big-endian
format, since all iconv implementations that omit a BOM must use
big-endian serialization according to the Unicode standard.

Preserve the existing behavior for systems which do not have this knob
enabled, since they may use optimized implementations, including
defaulting to the native endianness, which may improve performance.

Signed-off-by: brian m. carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ds/coverage-prove'</title>
<updated>2019-02-09T04:44:51Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-02-09T04:44:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5a5f40881d6dcebec36190115779eeb4ae89b6c9'/>
<id>urn:sha1:5a5f40881d6dcebec36190115779eeb4ae89b6c9</id>
<content type='text'>
A new target "coverage-prove" to run the coverage test under
"prove" has been added.

* ds/coverage-prove:
  Makefile: add coverage-prove target
</content>
</entry>
<entry>
<title>Merge branch 'rj/sparse-flags'</title>
<updated>2019-02-07T06:05:30Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-02-07T06:05:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fe8e68659d4d9220e15cd9019ef2153f08db4792'/>
<id>urn:sha1:fe8e68659d4d9220e15cd9019ef2153f08db4792</id>
<content type='text'>
Use of the sparse tool got easier to customize from the command
line to help developers.

* rj/sparse-flags:
  Makefile: improve SPARSE_FLAGS customisation
  config.mak.uname: remove obsolete SPARSE_FLAGS setting
</content>
</entry>
<entry>
<title>Merge branch 'js/vsts-ci'</title>
<updated>2019-02-07T06:05:26Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-02-07T06:05:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=57cbc53d3e0567d630b3e08be41e555efb06f616'/>
<id>urn:sha1:57cbc53d3e0567d630b3e08be41e555efb06f616</id>
<content type='text'>
Prepare to run test suite on Azure Pipeline.

* js/vsts-ci: (22 commits)
  test-date: drop unused parameter to getnanos()
  ci: parallelize testing on Windows
  ci: speed up Windows phase
  tests: optionally skip bin-wrappers/
  t0061: workaround issues with --with-dashes and RUNTIME_PREFIX
  tests: add t/helper/ to the PATH with --with-dashes
  mingw: try to work around issues with the test cleanup
  tests: include detailed trace logs with --write-junit-xml upon failure
  tests: avoid calling Perl just to determine file sizes
  README: add a build badge (status of the Azure Pipelines build)
  mingw: be more generous when wrapping up the setitimer() emulation
  ci: use git-sdk-64-minimal build artifact
  ci: add a Windows job to the Azure Pipelines definition
  Add a build definition for Azure DevOps
  ci/lib.sh: add support for Azure Pipelines
  tests: optionally write results as JUnit-style .xml
  test-date: add a subcommand to measure times in shell scripts
  ci: use a junction on Windows instead of a symlink
  ci: inherit --jobs via MAKEFLAGS in run-build-and-tests
  ci/lib.sh: encapsulate Travis-specific things
  ...
</content>
</entry>
<entry>
<title>Merge branch 'en/rebase-merge-on-sequencer'</title>
<updated>2019-02-07T06:05:20Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-02-07T06:05:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8fe9c3f21dff206acb464d86cbd3bf4dbbb94f38'/>
<id>urn:sha1:8fe9c3f21dff206acb464d86cbd3bf4dbbb94f38</id>
<content type='text'>
"git rebase --merge" as been reimplemented by reusing the internal
machinery used for "git rebase -i".

* en/rebase-merge-on-sequencer:
  rebase: implement --merge via the interactive machinery
  rebase: define linearization ordering and enforce it
  git-legacy-rebase: simplify unnecessary triply-nested if
  git-rebase, sequencer: extend --quiet option for the interactive machinery
  am, rebase--merge: do not overlook --skip'ed commits with post-rewrite
  t5407: add a test demonstrating how interactive handles --skip differently
  rebase: fix incompatible options error message
  rebase: make builtin and legacy script error messages the same
</content>
</entry>
<entry>
<title>Merge branch 'js/commit-graph-chunk-table-fix'</title>
<updated>2019-02-05T22:26:11Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-02-05T22:26:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=19a504d92bde1ba1936eb025c571fef7e6630e4b'/>
<id>urn:sha1:19a504d92bde1ba1936eb025c571fef7e6630e4b</id>
<content type='text'>
The codepath to read from the commit-graph file attempted to read
past the end of it when the file's table-of-contents was corrupt.

* js/commit-graph-chunk-table-fix:
  Makefile: correct example fuzz build
  commit-graph: fix buffer read-overflow
  commit-graph, fuzz: add fuzzer for commit-graph
</content>
</entry>
</feed>
