<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/object.h, branch v1.2.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v1.2.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v1.2.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2006-02-12T13:12:39Z</updated>
<entry>
<title>Use a hashtable for objects instead of a sorted list</title>
<updated>2006-02-12T13:12:39Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>Johannes.Schindelin@gmx.de</email>
</author>
<published>2006-02-12T01:57:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=070879ca93a7d358086f4c8aff4553493dcb9210'/>
<id>urn:sha1:070879ca93a7d358086f4c8aff4553493dcb9210</id>
<content type='text'>
In a simple test, this brings down the CPU time from 47 sec to 22 sec.

Signed-off-by: Johannes Schindelin &lt;Johannes.Schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>[PATCH] Compilation: zero-length array declaration.</title>
<updated>2006-01-07T18:51:06Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-01-07T09:33:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8f1d2e6f49ee51ac062ab38337a6a70dd1998def'/>
<id>urn:sha1:8f1d2e6f49ee51ac062ab38337a6a70dd1998def</id>
<content type='text'>
ISO C99 (and GCC 3.x or later) lets you write a flexible array
at the end of a structure, like this:

	struct frotz {
		int xyzzy;
		char nitfol[]; /* more */
	};

GCC 2.95 and 2.96 let you to do this with "char nitfol[0]";
unfortunately this is not allowed by ISO C90.

This declares such construct like this:

	struct frotz {
		int xyzzy;
		char nitfol[FLEX_ARRAY]; /* more */
	};

and git-compat-util.h defines FLEX_ARRAY to 0 for gcc 2.95 and
empty for others.

If you are using a C90 C compiler, you should be able
to override this with CFLAGS=-DFLEX_ARRAY=1 from the
command line of "make".

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>GIT 0.99.9j aka 1.0rc3</title>
<updated>2005-11-17T05:32:44Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2005-11-17T05:32:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=27dedf0c3b78d1072fb5449149421284f9e5297b'/>
<id>urn:sha1:27dedf0c3b78d1072fb5449149421284f9e5297b</id>
<content type='text'>
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>[PATCH] Avoid building object ref lists when not needed</title>
<updated>2005-09-16T22:32:23Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@osdl.org</email>
</author>
<published>2005-09-16T21:55:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8805ccac40348094d26b3b892c6ca3d08dc12ae0'/>
<id>urn:sha1:8805ccac40348094d26b3b892c6ca3d08dc12ae0</id>
<content type='text'>
The object parsing code builds a generic "this object references that
object" because doing a full connectivity check for fsck requires it.

However, nothing else really needs it, and it's quite expensive for
git-rev-list that can have tons of objects in flight.

So, exactly like the commit buffer save thing, add a global flag to
disable it, and use it in git-rev-list.

Before:

	$ /usr/bin/time git-rev-list --objects v2.6.12..HEAD | wc -l
	12.28user 0.29system 0:12.57elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
	0inputs+0outputs (0major+26718minor)pagefaults 0swaps
	59124

After this change:

	$ /usr/bin/time git-rev-list --objects v2.6.12..HEAD | wc -l
	10.33user 0.18system 0:10.54elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
	0inputs+0outputs (0major+18509minor)pagefaults 0swaps
	59124

and note how the number of pages touched by git-rev-list for this
particular object list has shrunk from 26,718 (104 MB) to 18,509 (72 MB).

Calculating the total object difference between two git revisions is still
clearly the most expensive git operation (both in memory and CPU time),
but it's now less than 40% of what it used to be.

Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>[PATCH] Add function to append to an object_list.</title>
<updated>2005-09-11T01:27:40Z</updated>
<author>
<name>Daniel Barkalow</name>
<email>barkalow@iabervon.org</email>
</author>
<published>2005-09-05T06:04:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=680bab3d9a33029be38590681832ae9b6d74ad60'/>
<id>urn:sha1:680bab3d9a33029be38590681832ae9b6d74ad60</id>
<content type='text'>
Signed-off-by: Daniel Barkalow &lt;barkalow@iabervon.org&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>[PATCH] Object library enhancements</title>
<updated>2005-08-03T05:53:07Z</updated>
<author>
<name>barkalow@iabervon.org</name>
<email>barkalow@iabervon.org</email>
</author>
<published>2005-08-02T23:45:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=66e481b007e843be54b9ff6a4be6e139c103a695'/>
<id>urn:sha1:66e481b007e843be54b9ff6a4be6e139c103a695</id>
<content type='text'>
Add function to look up an object which is entirely unknown, so that
it can be put in a list. Various other functions related to lists of
objects.

Signed-off-by: Daniel Barkalow &lt;barkalow@iabervon.org&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>[PATCH] Remove "delta" object representation.</title>
<updated>2005-06-27T22:27:51Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2005-06-27T10:33:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c4584ae3fd7cd595a638a07dfd853e9d2745e930'/>
<id>urn:sha1:c4584ae3fd7cd595a638a07dfd853e9d2745e930</id>
<content type='text'>
Packed delta files created by git-pack-objects seems to be the
way to go, and existing "delta" object handling code has exposed
the object representation details to too many places.  Remove it
while we refactor code to come up with a proper interface in
sha1_file.c.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>Ooh. Make git-rev-list --object associate a name with objects.</title>
<updated>2005-06-26T22:26:05Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@ppc970.osdl.org</email>
</author>
<published>2005-06-26T22:26:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9ce43d1c90dc199bf8ced85fa5fdadc152753022'/>
<id>urn:sha1:9ce43d1c90dc199bf8ced85fa5fdadc152753022</id>
<content type='text'>
The name isn't unique, it's just the first name that object is reached
through, so it's really nothing more than a hint.
</content>
</entry>
<entry>
<title>[PATCH] Parse tags for absent objects</title>
<updated>2005-06-22T01:29:12Z</updated>
<author>
<name>Daniel Barkalow</name>
<email>barkalow@iabervon.org</email>
</author>
<published>2005-06-22T00:35:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=89e4202f9828c18f5db4db80a008a2a8a458855e'/>
<id>urn:sha1:89e4202f9828c18f5db4db80a008a2a8a458855e</id>
<content type='text'>
Handle parsing a tag for a non-present object. This adds a function to lookup
an object with lookup_* for * in a string, so that it can get the right storage
based on the "type" line in the tag.

Signed-off-by: Daniel Barkalow &lt;barkalow@iabervon.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] Anal retentive 'const unsigned char *sha1'</title>
<updated>2005-06-08T20:04:53Z</updated>
<author>
<name>Jason McMullan</name>
<email>jason.mcmullan@timesys.com</email>
</author>
<published>2005-06-03T15:05:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5d6ccf5ce7f28e576a87f6c6f4f99fae90e06db6'/>
<id>urn:sha1:5d6ccf5ce7f28e576a87f6c6f4f99fae90e06db6</id>
<content type='text'>
Make 'sha1' parameters const where possible

Signed-off-by: Jason McMullan &lt;jason.mcmullan@timesys.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
</feed>
