<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/builtin, branch v2.12.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.12.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.12.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2017-03-24T19:57:53Z</updated>
<entry>
<title>Merge branch 'jk/grep-no-index-fix' into maint</title>
<updated>2017-03-24T19:57:53Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-03-24T19:57:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ea7aa5a464ea7e0d5ee5f3c2a5728d40ebd1f3f1'/>
<id>urn:sha1:ea7aa5a464ea7e0d5ee5f3c2a5728d40ebd1f3f1</id>
<content type='text'>
The code to parse the command line "git grep &lt;patterns&gt;... &lt;rev&gt;
[[--] &lt;pathspec&gt;...]" has been cleaned up, and a handful of bugs
have been fixed (e.g. we used to check "--" if it is a rev).

* jk/grep-no-index-fix:
  grep: treat revs the same for --untracked as for --no-index
  grep: do not diagnose misspelt revs with --no-index
  grep: avoid resolving revision names in --no-index case
  grep: fix "--" rev/pathspec disambiguation
  grep: re-order rev-parsing loop
  grep: do not unnecessarily query repo for "--"
  grep: move thread initialization a little lower
</content>
</entry>
<entry>
<title>Merge branch 'jk/push-deadlock-regression-fix' into maint</title>
<updated>2017-03-24T19:57:52Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-03-24T19:57:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f4d3af185988ad45ebc0a6dead32222cad2c03a6'/>
<id>urn:sha1:f4d3af185988ad45ebc0a6dead32222cad2c03a6</id>
<content type='text'>
"git push" had a handful of codepaths that could lead to a deadlock
when unexpected error happened, which has been fixed.

* jk/push-deadlock-regression-fix:
  send-pack: report signal death of pack-objects
  send-pack: read "unpack" status even on pack-objects failure
  send-pack: improve unpack-status error messages
  send-pack: use skip_prefix for parsing unpack status
  send-pack: extract parsing of "unpack" response
  receive-pack: fix deadlock when we cannot create tmpdir
</content>
</entry>
<entry>
<title>Merge branch 'jk/show-branch-lift-name-len-limit' into maint</title>
<updated>2017-03-21T22:03:29Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-03-21T22:03:29Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=93abd178716c20024422f902d2f0bc560be44dc7'/>
<id>urn:sha1:93abd178716c20024422f902d2f0bc560be44dc7</id>
<content type='text'>
"git show-branch" expected there were only very short branch names
in the repository and used a fixed-length buffer to hold them
without checking for overflow.

* jk/show-branch-lift-name-len-limit:
  show-branch: use skip_prefix to drop magic numbers
  show-branch: store resolved head in heap buffer
  show-branch: drop head_len variable
</content>
</entry>
<entry>
<title>Merge branch 'rl/remote-allow-missing-branch-name-merge' into maint</title>
<updated>2017-03-21T22:03:28Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-03-21T22:03:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0d9f9424ad12c8e9e71db45776f6bf4a143b90f3'/>
<id>urn:sha1:0d9f9424ad12c8e9e71db45776f6bf4a143b90f3</id>
<content type='text'>
"git remote rm X", when a branch has remote X configured as the
value of its branch.*.remote, tried to remove branch.*.remote and
branch.*.merge and failed if either is unset.

* rl/remote-allow-missing-branch-name-merge:
  remote: ignore failure to remove missing branch.&lt;name&gt;.merge
</content>
</entry>
<entry>
<title>Merge branch 'dt/gc-ignore-old-gc-logs' into maint</title>
<updated>2017-03-21T22:03:28Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-03-21T22:03:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d30ec1bece7f56080bac3e5a9f8dbc9f80508fdb'/>
<id>urn:sha1:d30ec1bece7f56080bac3e5a9f8dbc9f80508fdb</id>
<content type='text'>
A "gc.log" file left by a backgrounded "gc --auto" disables further
automatic gc; it has been taught to run at least once a day (by
default) by ignoring a stale "gc.log" file that is too old.

* dt/gc-ignore-old-gc-logs:
  gc: ignore old gc.log files
</content>
</entry>
<entry>
<title>real_pathdup(): fix callsites that wanted it to die on error</title>
<updated>2017-03-08T22:38:41Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2017-03-08T15:43:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ce83eadd9a2c63db6263df91933da1b1b865d26a'/>
<id>urn:sha1:ce83eadd9a2c63db6263df91933da1b1b865d26a</id>
<content type='text'>
In 4ac9006f832 (real_path: have callers use real_pathdup and
strbuf_realpath, 2016-12-12), we changed the xstrdup(real_path())
pattern to use real_pathdup() directly.

The problem with this change is that real_path() calls
strbuf_realpath() with die_on_error = 1 while real_pathdup() calls
it with die_on_error = 0. Meaning that in cases where real_path()
causes Git to die() with an error message, real_pathdup() is silent
and returns NULL instead.

The callers, however, are ill-prepared for that change, as they expect
the return value to be non-NULL (and otherwise the function died
with an appropriate error message).

Fix this by extending real_pathdup()'s signature to accept the
die_on_error flag and simply pass it through to strbuf_realpath(),
and then adjust all callers after a careful audit whether they would
handle NULLs well.

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>receive-pack: fix deadlock when we cannot create tmpdir</title>
<updated>2017-03-07T22:51:03Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2017-03-07T13:35:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=6cdad1f133475f2bff0dfe2fbe90c351df3ea61d'/>
<id>urn:sha1:6cdad1f133475f2bff0dfe2fbe90c351df3ea61d</id>
<content type='text'>
The err_fd descriptor passed to the unpack() function is
intended to be handed off to the child index-pack, and our
async muxer will read until it gets EOF. However, if we
encounter an error before handing off the descriptor, we
must manually close(err_fd). Otherwise we will be waiting
for our muxer to finish, while the muxer is waiting for EOF
on err_fd.

We fixed an identical deadlock already in 49ecfa13f
(receive-pack: close sideband fd on early pack errors,
2013-04-19). But since then, the function grew a new
early-return in 722ff7f87 (receive-pack: quarantine objects
until pre-receive accepts, 2016-10-03), when we fail to
create a temporary directory. This return needs the same
treatment.

Reported-by: Horst Schirmeier &lt;horst@schirmeier.com&gt;
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>remote: ignore failure to remove missing branch.&lt;name&gt;.merge</title>
<updated>2017-02-21T21:57:41Z</updated>
<author>
<name>Ross Lagerwall</name>
<email>rosslagerwall@gmail.com</email>
</author>
<published>2017-02-18T00:23:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=20690b213975ad3e9b1bc851f434d818bd2d1de9'/>
<id>urn:sha1:20690b213975ad3e9b1bc851f434d818bd2d1de9</id>
<content type='text'>
It is not all too unusual for a branch to use "branch.&lt;name&gt;.remote"
without "branch.&lt;name&gt;.merge".  You may be using the 'push.default'
configuration set to 'current', for example, and do

    $ git checkout -b side colleague/side
    $ git config branch.side.remote colleague

However, "git remote rm" to remove the remote used in such a manner
fails with

    "fatal: could not unset 'branch.&lt;name&gt;.merge'"

because it assumes that a branch that has .remote defined must also
have .merge defined.  Detect the "cannot unset because it is not set
to begin with" case and ignore it.

Signed-off-by: Ross Lagerwall &lt;rosslagerwall@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'rs/strbuf-cleanup-in-rmdir-recursively'</title>
<updated>2017-02-16T22:45:13Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-02-16T22:45:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1e00c41fd69a94be423cf5278e75da594c23eb9d'/>
<id>urn:sha1:1e00c41fd69a94be423cf5278e75da594c23eb9d</id>
<content type='text'>
Code clean-up.

* rs/strbuf-cleanup-in-rmdir-recursively:
  rm: reuse strbuf for all remove_dir_recursively() calls, again
</content>
</entry>
<entry>
<title>Merge branch 'rs/ls-files-partial-optim'</title>
<updated>2017-02-16T22:45:13Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-02-16T22:45:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a3b3c9c916298199e4a80afccc2e14b69e5d6d42'/>
<id>urn:sha1:a3b3c9c916298199e4a80afccc2e14b69e5d6d42</id>
<content type='text'>
"ls-files" run with pathspec has been micro-optimized to avoid
having to memmove(3) unnecessary bytes.

* rs/ls-files-partial-optim:
  ls-files: move only kept cache entries in prune_cache()
  ls-files: pass prefix length explicitly to prune_cache()
</content>
</entry>
</feed>
