<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git, branch cmn/read-tree-cache</title>
<subtitle>github.com: libgit2/libgit2.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/'/>
<entry>
<title>Update CHANGELOG and PROJECTS with the tree cache changes</title>
<updated>2014-10-03T14:46:20+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-09-29T07:21:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=220349417af1c737928a967f11450765b1f98362'/>
<id>220349417af1c737928a967f11450765b1f98362</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>index: fill the tree cache on write-tree</title>
<updated>2014-10-03T14:46:20+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-09-29T07:07:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=41d2ad9003ff87e48774c2c6cda09ef810b96271'/>
<id>41d2ad9003ff87e48774c2c6cda09ef810b96271</id>
<content type='text'>
An obvious place to fill the tree cache is on write-tree, as we're
guaranteed to be able to fill in the whole tree cache.

The way this commit does this is not the most efficient, as we read the
root tree from the odb instead of filling in the cache as we go along,
but it fills the cache such that successive operations (and persisting
the index to disk) will be able to take advantage of the cache, and it
reuses the code we already have for filling the cache.

Filling in the cache as we create the trees would require some
reallocation of the children vector, which is currently not possible
with out pool implementation. A different data structure would likely
allow us to perform this operation at a later date.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
An obvious place to fill the tree cache is on write-tree, as we're
guaranteed to be able to fill in the whole tree cache.

The way this commit does this is not the most efficient, as we read the
root tree from the odb instead of filling in the cache as we go along,
but it fills the cache such that successive operations (and persisting
the index to disk) will be able to take advantage of the cache, and it
reuses the code we already have for filling the cache.

Filling in the cache as we create the trees would require some
reallocation of the children vector, which is currently not possible
with out pool implementation. A different data structure would likely
allow us to perform this operation at a later date.
</pre>
</div>
</content>
</entry>
<entry>
<title>index: make sure to write cached subtrees if parent is invalidated</title>
<updated>2014-10-03T14:46:20+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-09-29T06:03:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=cc61c2c5d5376de99ab9dd95bfe03274f1adfb77'/>
<id>cc61c2c5d5376de99ab9dd95bfe03274f1adfb77</id>
<content type='text'>
If e.g. the root tree is invalidated, we still want to write out
its children, since those may still have valid cache entries.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If e.g. the root tree is invalidated, we still want to write out
its children, since those may still have valid cache entries.
</pre>
</div>
</content>
</entry>
<entry>
<title>index: write out the tree cache extension</title>
<updated>2014-10-03T14:46:20+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-09-28T05:00:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=fd545533f403a4f7fe7561d2531b1f9fb5371c7e'/>
<id>fd545533f403a4f7fe7561d2531b1f9fb5371c7e</id>
<content type='text'>
Keeping the cache around after read-tree is only one part of the
optimisation opportunities. In order to share the cache between program
instances, we need to write the TREE extension to the index.

Do so, taking the opportunity to rename 'entries' to 'entry_count' to
match the name given in the format description. The included test is
rather trivial, but works as a sanity check.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Keeping the cache around after read-tree is only one part of the
optimisation opportunities. In order to share the cache between program
instances, we need to write the TREE extension to the index.

Do so, taking the opportunity to rename 'entries' to 'entry_count' to
match the name given in the format description. The included test is
rather trivial, but works as a sanity check.
</pre>
</div>
</content>
</entry>
<entry>
<title>tree-cache: remove the parent pointer</title>
<updated>2014-07-11T09:52:38+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-07-11T09:52:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=5800057f20d4bf21e76629c47ecd9d13dcdf2607'/>
<id>5800057f20d4bf21e76629c47ecd9d13dcdf2607</id>
<content type='text'>
This wasn't used. We invalidate based on the full path, so we always go
down the tree, never up.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This wasn't used. We invalidate based on the full path, so we always go
down the tree, never up.
</pre>
</div>
</content>
</entry>
<entry>
<title>index: add tests for the tree cache</title>
<updated>2014-07-11T09:48:51+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-07-11T09:48:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=ca6254ce12a36fafd7f9f6da9d9b503700ab27f1'/>
<id>ca6254ce12a36fafd7f9f6da9d9b503700ab27f1</id>
<content type='text'>
These test that we invalidate at the right levels and that we remove the
tree cache when clearing the index.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These test that we invalidate at the right levels and that we remove the
tree cache when clearing the index.
</pre>
</div>
</content>
</entry>
<entry>
<title>index: fill the tree cache when reading from a tree</title>
<updated>2014-07-11T07:13:39+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-07-10T12:10:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=894b6dffbc9360a64f41cbd1227c8c19936ed4c3'/>
<id>894b6dffbc9360a64f41cbd1227c8c19936ed4c3</id>
<content type='text'>
When reading from a tree, we know what every tree is going to look like,
so we can fill in the tree cache completely, making use of the index for
modification of trees a lot quicker.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When reading from a tree, we know what every tree is going to look like,
so we can fill in the tree cache completely, making use of the index for
modification of trees a lot quicker.
</pre>
</div>
</content>
</entry>
<entry>
<title>tree-cache: move to use a pool allocator</title>
<updated>2014-07-10T11:48:13+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-07-10T11:48:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=e9363d367d80ff057d0ec0996e4445908a12be33'/>
<id>e9363d367d80ff057d0ec0996e4445908a12be33</id>
<content type='text'>
This simplifies freeing the entries quite a bit; though there aren't
that many failure paths right now, introducing filling the cache from a
tree will introduce more. This makes sure not to leak memory on errors.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This simplifies freeing the entries quite a bit; though there aren't
that many failure paths right now, introducing filling the cache from a
tree will introduce more. This makes sure not to leak memory on errors.
</pre>
</div>
</content>
</entry>
<entry>
<title>tree-cache: extract the allocation</title>
<updated>2014-07-10T10:21:28+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-07-10T10:21:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=ed4e975631a87780918cb39505c969048cd7d7ff'/>
<id>ed4e975631a87780918cb39505c969048cd7d7ff</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Documentation fixes</title>
<updated>2014-07-08T08:30:19+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-07-08T07:56:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=18eb6ec8233cb3cb607abdf289da6a57cc252bb2'/>
<id>18eb6ec8233cb3cb607abdf289da6a57cc252bb2</id>
<content type='text'>
Fixup git_attr_value's comment to be recognised as documentation, and
include the definitions needed for clang to parse reset.h such that
it shows up in the documentation.

This fixes #2430.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixup git_attr_value's comment to be recognised as documentation, and
include the definitions needed for clang to parse reset.h such that
it shows up in the documentation.

This fixes #2430.
</pre>
</div>
</content>
</entry>
</feed>
