<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/builtin, branch v2.0.5</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.0.5</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.0.5'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2014-07-28T17:14:34Z</updated>
<entry>
<title>diff-tree: avoid lookup_unknown_object</title>
<updated>2014-07-28T17:14:34Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2014-07-13T06:42:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b794ebeac9151af4a9136ef28a22a06c2afb17cc'/>
<id>urn:sha1:b794ebeac9151af4a9136ef28a22a06c2afb17cc</id>
<content type='text'>
We generally want to avoid lookup_unknown_object, because it
results in allocating more memory for the object than may be
strictly necessary.

In this case, it is used to check whether we have an
already-parsed object before calling parse_object, to save
us from reading the object from disk. Using lookup_object
would be fine for that purpose, but we can take it a step
further. Since this code was written, parse_object already
learned the "check lookup_object" optimization, so we can
simply call parse_object directly.

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>move setting of object-&gt;type to alloc_* functions</title>
<updated>2014-07-28T17:14:33Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2014-07-13T06:41:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fe24d396e1b8d2eedbc07f626af3dcd2b14e6012'/>
<id>urn:sha1:fe24d396e1b8d2eedbc07f626af3dcd2b14e6012</id>
<content type='text'>
The "struct object" type implements basic object
polymorphism.  Individual instances are allocated as
concrete types (or as a union type that can store any
object), and a "struct object *" can be cast into its real
type after examining its "type" enum.  This means it is
dangerous to have a type field that does not match the
allocation (e.g., setting the type field of a "struct blob"
to "OBJ_COMMIT" would mean that a reader might read past the
allocated memory).

In most of the current code this is not a problem; the first
thing we do after allocating an object is usually to set its
type field by passing it to create_object. However, the
virtual commits we create in merge-recursive.c do not ever
get their type set. This does not seem to have caused
problems in practice, though (presumably because we always
pass around a "struct commit" pointer and never even look at
the type).

We can fix this oversight and also make it harder for future
code to get it wrong by setting the type directly in the
object allocation functions.

This will also make it easier to fix problems with commit
index allocation, as we know that any object allocated by
alloc_commit_node will meet the invariant that an object
with an OBJ_COMMIT type field will have a unique index
number.

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 'bg/xcalloc-nmemb-then-size' into maint</title>
<updated>2014-07-22T17:25:17Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-07-22T17:25:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=cfececfe1ff1554783030a6f08b431ad50263800'/>
<id>urn:sha1:cfececfe1ff1554783030a6f08b431ad50263800</id>
<content type='text'>
* bg/xcalloc-nmemb-then-size:
  transport-helper.c: rearrange xcalloc arguments
  remote.c: rearrange xcalloc arguments
  reflog-walk.c: rearrange xcalloc arguments
  pack-revindex.c: rearrange xcalloc arguments
  notes.c: rearrange xcalloc arguments
  imap-send.c: rearrange xcalloc arguments
  http-push.c: rearrange xcalloc arguments
  diff.c: rearrange xcalloc arguments
  config.c: rearrange xcalloc arguments
  commit.c: rearrange xcalloc arguments
  builtin/remote.c: rearrange xcalloc arguments
  builtin/ls-remote.c: rearrange xcalloc arguments
</content>
</entry>
<entry>
<title>use xmemdupz() to allocate copies of strings given by start and length</title>
<updated>2014-07-21T17:37:02Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2014-07-19T15:35:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5c0b13f85ab3a5326508b854768eb70c8829cda4'/>
<id>urn:sha1:5c0b13f85ab3a5326508b854768eb70c8829cda4</id>
<content type='text'>
Use xmemdupz() to allocate the memory, copy the data and make sure to
NUL-terminate the result, all in one step.  The resulting code is
shorter, doesn't contain the constants 1 and '\0', and avoids
duplicating function parameters.

For blame, the last copied byte (o-&gt;file.ptr[o-&gt;file.size]) is always
set to NUL by fake_working_tree_commit() or read_sha1_file(), so no
information is lost by the conversion to using xmemdupz().

Signed-off-by: Rene Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>use xcalloc() to allocate zero-initialized memory</title>
<updated>2014-07-21T17:30:21Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2014-07-19T13:56:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=51a60f5bfbaf1ee7c7a2d2b73eca4f042f7af8cb'/>
<id>urn:sha1:51a60f5bfbaf1ee7c7a2d2b73eca4f042f7af8cb</id>
<content type='text'>
Use xcalloc() instead of xmalloc() followed by memset() to allocate
and zero out memory because it's shorter and avoids duplicating the
function parameters.

Signed-off-by: Rene Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jc/fix-clone-single-starting-at-a-tag' into maint</title>
<updated>2014-07-16T18:17:36Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-07-16T18:17:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2e931843adb7ce59b5d9bc76f72edff7805980a9'/>
<id>urn:sha1:2e931843adb7ce59b5d9bc76f72edff7805980a9</id>
<content type='text'>
"git clone -b brefs/tags/bar" would have mistakenly thought we were
following a single tag, even though it was a name of the branch,
because it incorrectly used strstr().

* jc/fix-clone-single-starting-at-a-tag:
  builtin/clone.c: detect a clone starting at a tag correctly
</content>
</entry>
<entry>
<title>Merge branch 'jk/commit-buffer-length' into maint</title>
<updated>2014-07-16T18:16:38Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-07-16T18:16:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5c18fde0d96cfcbc321caad8f809028b0c63aaeb'/>
<id>urn:sha1:5c18fde0d96cfcbc321caad8f809028b0c63aaeb</id>
<content type='text'>
A handful of code paths had to read the commit object more than
once when showing header fields that are usually not parsed.  The
internal data structure to keep track of the contents of the commit
object has been updated to reduce the need for this double-reading,
and to allow the caller find the length of the object.

* jk/commit-buffer-length:
  reuse cached commit buffer when parsing signatures
  commit: record buffer length in cache
  commit: convert commit-&gt;buffer to a slab
  commit-slab: provide a static initializer
  use get_commit_buffer everywhere
  convert logmsg_reencode to get_commit_buffer
  use get_commit_buffer to avoid duplicate code
  use get_cached_commit_buffer where appropriate
  provide helpers to access the commit buffer
  provide a helper to set the commit buffer
  provide a helper to free commit buffer
  sequencer: use logmsg_reencode in get_message
  logmsg_reencode: return const buffer
  do not create "struct commit" with xcalloc
  commit: push commit_index update into alloc_commit_node
  alloc: include any-object allocations in alloc_report
  replace dangerous uses of strbuf_attach
  commit_tree: take a pointer/len pair rather than a const strbuf
</content>
</entry>
<entry>
<title>Merge branch 'maint-1.9' into maint</title>
<updated>2014-07-16T18:11:06Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-07-16T18:11:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9092a9696bee9a5729b7b1741a5de99aecb75552'/>
<id>urn:sha1:9092a9696bee9a5729b7b1741a5de99aecb75552</id>
<content type='text'>
* maint-1.9:
  annotate: use argv_array
</content>
</entry>
<entry>
<title>Merge branch 'maint-1.8.5' into maint-1.9</title>
<updated>2014-07-16T18:10:30Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-07-16T18:10:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d22acacf810a92d5634099a7db0367ce5b6fdcef'/>
<id>urn:sha1:d22acacf810a92d5634099a7db0367ce5b6fdcef</id>
<content type='text'>
* maint-1.8.5:
  annotate: use argv_array
  t7300: repair filesystem permissions with test_when_finished
  enums: remove trailing ',' after last item in enum
</content>
</entry>
<entry>
<title>annotate: use argv_array</title>
<updated>2014-07-16T18:10:11Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2014-07-16T08:51:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8c2cfa55446f542454eb4acc7f49d1747e425c94'/>
<id>urn:sha1:8c2cfa55446f542454eb4acc7f49d1747e425c94</id>
<content type='text'>
Simplify the code and get rid of some magic constants by using
argv_array to build the argument list for cmd_blame.  Be lazy and let
the OS release our allocated memory, as before.

Signed-off-by: Rene Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
