<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/cache.h, branch v2.14.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.14.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.14.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2017-09-10T08:03:04Z</updated>
<entry>
<title>Merge branch 'sb/sha1-file-cleanup' into maint</title>
<updated>2017-09-10T08:03:04Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-09-10T08:03:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f04f860dfa80f9bb7f185fa9b6fecc73dbe902b4'/>
<id>urn:sha1:f04f860dfa80f9bb7f185fa9b6fecc73dbe902b4</id>
<content type='text'>
Code clean-up.

* sb/sha1-file-cleanup:
  sha1_file: make read_info_alternates static
</content>
</entry>
<entry>
<title>Merge branch 'jk/hashcmp-memcmp' into maint</title>
<updated>2017-09-10T08:02:59Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-09-10T08:02:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=822a4d41785829c67f6cd19e9e5f8541eb4c3c11'/>
<id>urn:sha1:822a4d41785829c67f6cd19e9e5f8541eb4c3c11</id>
<content type='text'>
Code clean-up.

* jk/hashcmp-memcmp:
  hashcmp: use memcmp instead of open-coded loop
</content>
</entry>
<entry>
<title>Merge branch 'jt/subprocess-handshake' into maint</title>
<updated>2017-08-23T21:33:52Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-08-23T21:33:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=df2dd283164b7f1776b04dfbea9302a0bd1c170c'/>
<id>urn:sha1:df2dd283164b7f1776b04dfbea9302a0bd1c170c</id>
<content type='text'>
Code cleanup.

* jt/subprocess-handshake:
  sub-process: refactor handshake to common function
  Documentation: migrate sub-process docs to header
  convert: add "status=delayed" to filter process protocol
  convert: refactor capabilities negotiation
  convert: move multiple file filter error handling to separate function
  convert: put the flags field before the flag itself for consistent style
  t0021: write "OUT &lt;size&gt;" only on success
  t0021: make debug log file name configurable
  t0021: keep filter log files on comparison
</content>
</entry>
<entry>
<title>sha1_file: make read_info_alternates static</title>
<updated>2017-08-15T21:39:25Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2017-08-15T20:13:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2456990dfd93dee6d1906d774db112056534b57b'/>
<id>urn:sha1:2456990dfd93dee6d1906d774db112056534b57b</id>
<content type='text'>
read_info_alternates is not used from outside, so let's make it static.

We have to declare the function before link_alt_odb_entry instead of
moving the code around, link_alt_odb_entry calls read_info_alternates,
which in turn calls link_alt_odb_entry.

Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Reviewed-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>hashcmp: use memcmp instead of open-coded loop</title>
<updated>2017-08-09T18:03:25Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2017-08-09T10:16:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0b006014c87f400bd9a86267ed30fd3e7b383884'/>
<id>urn:sha1:0b006014c87f400bd9a86267ed30fd3e7b383884</id>
<content type='text'>
In 1a812f3a70 (hashcmp(): inline memcmp() by hand to
optimize, 2011-04-28), it was reported that an open-coded
loop outperformed memcmp() for comparing sha1s.

Discussion[1] a few years later in 2013 showed that this
depends on your libc's version of memcmp(). In particular,
glibc 2.13 optimized their memcmp around 2011. Here are
current timings with glibc 2.24 (best-of-five, on
linux.git):

  [before this patch, open-coded]
  $ time git rev-list --objects --all
  real	0m35.357s
  user	0m35.016s
  sys	0m0.340s

  [after this patch, memcmp]
  real	0m32.930s
  user	0m32.630s
  sys	0m0.300s

Now that we've had 6 years for that version of glibc to
make its way onto people's machines, it's worth revisiting
our benchmarks and switching to memcmp().

It may be that there are other non-glibc systems where
memcmp() isn't as well optimized. But since our single data
point in favor of open-coding was on a now-ancient glibc, we
should probably assume the system memcmp is good unless
proven otherwise. We may end up with a SLOW_MEMCMP Makefile
knob, but we can hold off on that until we actually find
such a system in practice.

[1] https://public-inbox.org/git/20130318073229.GA5551@sigill.intra.peff.net/

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'v2.13.5' into maint</title>
<updated>2017-08-04T19:40:37Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-08-04T19:40:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=230ce07d134f597a8107d3ed5d76d212ff90db70'/>
<id>urn:sha1:230ce07d134f597a8107d3ed5d76d212ff90db70</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge tag 'v2.12.4' into maint</title>
<updated>2017-08-01T19:27:31Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-08-01T19:27:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e312af164c12052b7a0dbf8f7b86549a3c5b578f'/>
<id>urn:sha1:e312af164c12052b7a0dbf8f7b86549a3c5b578f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge tag 'v2.11.3' into maint-2.12</title>
<updated>2017-07-30T22:04:22Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-07-30T22:04:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3def5e9a8de16c505d369187ac3ec2ff87ab562a'/>
<id>urn:sha1:3def5e9a8de16c505d369187ac3ec2ff87ab562a</id>
<content type='text'>
Git 2.11.3
</content>
</entry>
<entry>
<title>Merge tag 'v2.10.4' into maint-2.11</title>
<updated>2017-07-30T22:01:31Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-07-30T22:01:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=05bb78abc179b47f6288b990c1ba8f3d403cad1d'/>
<id>urn:sha1:05bb78abc179b47f6288b990c1ba8f3d403cad1d</id>
<content type='text'>
Git 2.10.4
</content>
</entry>
<entry>
<title>Merge tag 'v2.9.5' into maint-2.10</title>
<updated>2017-07-30T21:57:33Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-07-30T21:57:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d78f06a1b70f3743899b5494f55a456596e51a63'/>
<id>urn:sha1:d78f06a1b70f3743899b5494f55a456596e51a63</id>
<content type='text'>
Git 2.9.5
</content>
</entry>
</feed>
