<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/builtin, branch v2.3.10</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.3.10</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.3.10'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2015-09-28T21:58:13Z</updated>
<entry>
<title>merge-file: enforce MAX_XDIFF_SIZE on incoming files</title>
<updated>2015-09-28T21:58:13Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2015-09-25T21:58:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=83c4d380171a2ecd24dd2e04072692ec54a7aaa5'/>
<id>urn:sha1:83c4d380171a2ecd24dd2e04072692ec54a7aaa5</id>
<content type='text'>
The previous commit enforces MAX_XDIFF_SIZE at the
interfaces to xdiff: xdi_diff (which calls xdl_diff) and
ll_xdl_merge (which calls xdl_merge).

But we have another direct call to xdl_merge in
merge-file.c. If it were written today, this probably would
just use the ll_merge machinery. But it predates that code,
and uses slightly different options to xdl_merge (e.g.,
ZEALOUS_ALNUM).

We could try to abstract out an xdi_merge to match the
existing xdi_diff, but even that is difficult. Rather than
simply report error, we try to treat large files as binary,
and that distinction would happen outside of xdi_merge.

The simplest fix is to just replicate the MAX_XDIFF_SIZE
check in merge-file.c.

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>react to errors in xdi_diff</title>
<updated>2015-09-28T21:57:10Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2015-09-24T23:12:23Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3efb988098858bf6b974b1e673a190f9d2965d1d'/>
<id>urn:sha1:3efb988098858bf6b974b1e673a190f9d2965d1d</id>
<content type='text'>
When we call into xdiff to perform a diff, we generally lose
the return code completely. Typically by ignoring the return
of our xdi_diff wrapper, but sometimes we even propagate
that return value up and then ignore it later.  This can
lead to us silently producing incorrect diffs (e.g., "git
log" might produce no output at all, not even a diff header,
for a content-level diff).

In practice this does not happen very often, because the
typical reason for xdiff to report failure is that it
malloc() failed (it uses straight malloc, and not our
xmalloc wrapper).  But it could also happen when xdiff
triggers one our callbacks, which returns an error (e.g.,
outf() in builtin/rerere.c tries to report a write failure
in this way). And the next patch also plans to add more
failure modes.

Let's notice an error return from xdiff and react
appropriately. In most of the diff.c code, we can simply
die(), which matches the surrounding code (e.g., that is
what we do if we fail to load a file for diffing in the
first place). This is not that elegant, but we are probably
better off dying to let the user know there was a problem,
rather than simply generating bogus output.

We could also just die() directly in xdi_diff, but the
callers typically have a bit more context, and can provide a
better message (and if we do later decide to pass errors up,
we're one step closer to doing so).

There is one interesting case, which is in diff_grep(). Here
if we cannot generate the diff, there is nothing to match,
and we silently return "no hits". This is actually what the
existing code does already, but we make it a little more
explicit.

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>Sync with 2.2.3</title>
<updated>2015-09-04T17:29:28Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-09-04T17:29:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8267cd11d677f1a5f8441ac2880f5e9d48dba60b'/>
<id>urn:sha1:8267cd11d677f1a5f8441ac2880f5e9d48dba60b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>show-branch: use a strbuf for reflog descriptions</title>
<updated>2015-09-04T16:48:26Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2015-08-19T18:12:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=78f23bdf68dae56d644892990484951583a64014'/>
<id>urn:sha1:78f23bdf68dae56d644892990484951583a64014</id>
<content type='text'>
When we show "branch@{0}", we format into a fixed-size
buffer using sprintf. This can overflow if you have long
branch names. We can fix it by using a temporary strbuf.

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 branch 'oh/fix-config-default-user-name-section' into maint-2.3</title>
<updated>2015-05-11T21:33:59Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-05-11T21:33:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1add9aed85674c2396a2a50cd4cd5548db32ac4f'/>
<id>urn:sha1:1add9aed85674c2396a2a50cd4cd5548db32ac4f</id>
<content type='text'>
The default $HOME/.gitconfig file created upon "git config --global"
that edits it had incorrectly spelled user.name and user.email
entries in it.

* oh/fix-config-default-user-name-section:
  config: fix settings in default_user_config template
</content>
</entry>
<entry>
<title>config: fix settings in default_user_config template</title>
<updated>2015-04-17T17:32:46Z</updated>
<author>
<name>Ossi Herrala</name>
<email>oherrala@gmail.com</email>
</author>
<published>2015-04-17T14:50:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7e1105244202d01ddf1de990f215418b01281bcf'/>
<id>urn:sha1:7e1105244202d01ddf1de990f215418b01281bcf</id>
<content type='text'>
The name (not user) and email setting should be in config section
"user" and not in "core" as documented in Documentation/config.txt.

Signed-off-by: Ossi Herrala &lt;oherrala@gmail.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>Merge branch 'jc/report-path-error-to-dir' into maint</title>
<updated>2015-03-31T21:53:08Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-03-31T21:53:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ab0fb57aac6c5b6f074c07c7e2729bcff58cc45d'/>
<id>urn:sha1:ab0fb57aac6c5b6f074c07c7e2729bcff58cc45d</id>
<content type='text'>
Code clean-up.

* jc/report-path-error-to-dir:
  report_path_error(): move to dir.c
</content>
</entry>
<entry>
<title>Merge branch 'ws/grep-quiet-no-pager' into maint</title>
<updated>2015-03-28T16:33:11Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-03-28T16:33:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b70cec0a2e8636c12617b38255c7ad2bb90f5cc9'/>
<id>urn:sha1:b70cec0a2e8636c12617b38255c7ad2bb90f5cc9</id>
<content type='text'>
Even though "git grep --quiet" is run merely to ask for the exit
status, we spawned the pager regardless.  Stop doing that.

* ws/grep-quiet-no-pager:
  grep: fix "--quiet" overwriting current output
</content>
</entry>
<entry>
<title>Merge branch 'jk/cleanup-failed-clone' into maint</title>
<updated>2015-03-28T16:33:09Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-03-28T16:33:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=73d8bfde32acae522b305f7742350d392e3f4e86'/>
<id>urn:sha1:73d8bfde32acae522b305f7742350d392e3f4e86</id>
<content type='text'>
An failure early in the "git clone" that started creating the
working tree and repository could have resulted in some directories
and files left without getting cleaned up.

* jk/cleanup-failed-clone:
  clone: drop period from end of die_errno message
  clone: initialize atexit cleanup handler earlier
</content>
</entry>
<entry>
<title>Merge branch 'jk/prune-with-corrupt-refs' into maint</title>
<updated>2015-03-28T16:33:06Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-03-28T16:33:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9f389aa4920f147a6314719741b47074b2e4b727'/>
<id>urn:sha1:9f389aa4920f147a6314719741b47074b2e4b727</id>
<content type='text'>
"git prune" used to largely ignore broken refs when deciding which
objects are still being used, which could spread an existing small
damage and make it a larger one.

* jk/prune-with-corrupt-refs:
  refs.c: drop curate_packed_refs
  repack: turn on "ref paranoia" when doing a destructive repack
  prune: turn on ref_paranoia flag
  refs: introduce a "ref paranoia" flag
  t5312: test object deletion code paths in a corrupted repository
</content>
</entry>
</feed>
