<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/src/iterator.h, branch cmn/remove-single-entry</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>iterator: cleanups</title>
<updated>2016-03-24T19:59:49+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-03-21T21:19:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=9eb9e5fa87667b823f73265c88a87f314d47aaf7'/>
<id>9eb9e5fa87667b823f73265c88a87f314d47aaf7</id>
<content type='text'>
Remove some unused functions, refactor some ugliness.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove some unused functions, refactor some ugliness.
</pre>
</div>
</content>
</entry>
<entry>
<title>iterator: mandate `advance_over`</title>
<updated>2016-03-24T19:59:48+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-03-21T20:51:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=247e3b4305f317bede88a225788239df57a8aa6d'/>
<id>247e3b4305f317bede88a225788239df57a8aa6d</id>
<content type='text'>
Since the three iterators implement `advance_over` differently,
mandate it and implement each.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since the three iterators implement `advance_over` differently,
mandate it and implement each.
</pre>
</div>
</content>
</entry>
<entry>
<title>iterator: move the index into the iterator itself</title>
<updated>2016-03-24T19:59:48+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-03-18T16:59:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=82a1aab647c9a587e0b8959719a6ea507a68ea31'/>
<id>82a1aab647c9a587e0b8959719a6ea507a68ea31</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>iterator: drop `advance_into_or_over`</title>
<updated>2016-03-23T21:17:02+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-03-17T19:19:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=0a2e10328aedae4e989c61f46c29f1fd26ae92d6'/>
<id>0a2e10328aedae4e989c61f46c29f1fd26ae92d6</id>
<content type='text'>
Now that iterators do not return `GIT_ENOTFOUND` when advancing
into an empty directory, we do not need a special `advance_into_or_over`
function.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now that iterators do not return `GIT_ENOTFOUND` when advancing
into an empty directory, we do not need a special `advance_into_or_over`
function.
</pre>
</div>
</content>
</entry>
<entry>
<title>iterator: combine fs+workdir iterators more completely</title>
<updated>2016-03-23T21:16:37+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-03-10T05:04:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=0e0589fcc383a0ca96d342896103e01d715df755'/>
<id>0e0589fcc383a0ca96d342896103e01d715df755</id>
<content type='text'>
Drop some of the layers of indirection between the workdir and the
filesystem iterators.  This makes the code a little bit easier to
follow, and reduces the number of unnecessary allocations a bit as
well.  (Prior to this, when we filter entries, we would allocate them,
filter them and then free them; now we do the filtering before
allocation.)

Also, rename `git_iterator_advance_over_with_status` to just
`git_iterator_advance_over`.  Mostly because it's a fucking long-ass
function name otherwise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Drop some of the layers of indirection between the workdir and the
filesystem iterators.  This makes the code a little bit easier to
follow, and reduces the number of unnecessary allocations a bit as
well.  (Prior to this, when we filter entries, we would allocate them,
filter them and then free them; now we do the filtering before
allocation.)

Also, rename `git_iterator_advance_over_with_status` to just
`git_iterator_advance_over`.  Mostly because it's a fucking long-ass
function name otherwise.
</pre>
</div>
</content>
</entry>
<entry>
<title>iterators: refactored tree iterator</title>
<updated>2016-03-23T21:08:37+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-02-25T21:05:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=be30387e8b95cbc626e2a4a4ebba9ac9678a1c06'/>
<id>be30387e8b95cbc626e2a4a4ebba9ac9678a1c06</id>
<content type='text'>
Refactored the tree iterator to never recurse; simply process the
next entry in order in `advance`.  Additionally, reduce the number of
allocations and sorting as much as possible to provide a ~30% speedup
on case-sensitive iteration.  (The gains for case-insensitive iteration
are less majestic.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Refactored the tree iterator to never recurse; simply process the
next entry in order in `advance`.  Additionally, reduce the number of
allocations and sorting as much as possible to provide a ~30% speedup
on case-sensitive iteration.  (The gains for case-insensitive iteration
are less majestic.)
</pre>
</div>
</content>
</entry>
<entry>
<title>iterator: disambiguate reset and reset_range</title>
<updated>2016-03-23T21:08:37+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-02-25T20:11:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=684b35c41b9166645e2edb9bc708aa7ddf9c1f24'/>
<id>684b35c41b9166645e2edb9bc708aa7ddf9c1f24</id>
<content type='text'>
Disambiguate the reset and reset_range functions.  Now reset_range
with a NULL path will clear the start or end; reset will leave the
existing start and end unchanged.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Disambiguate the reset and reset_range functions.  Now reset_range
with a NULL path will clear the start or end; reset will leave the
existing start and end unchanged.
</pre>
</div>
</content>
</entry>
<entry>
<title>iterator: drop unused/unimplemented `seek`</title>
<updated>2016-03-23T21:08:36+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-02-25T19:51:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=ac05086c40266bdd4541c06d3be532ee118ed204'/>
<id>ac05086c40266bdd4541c06d3be532ee118ed204</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Horrible fix for #3173.</title>
<updated>2016-02-11T22:41:34+00:00</updated>
<author>
<name>Arthur Schreiber</name>
<email>schreiber.arthur@googlemail.com</email>
</author>
<published>2016-02-11T22:37:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=3679ebaef5436a662ad74819f6cbd2c1e76e6766'/>
<id>3679ebaef5436a662ad74819f6cbd2c1e76e6766</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>iterator: saner pathlist matching for idx iterator</title>
<updated>2015-08-31T15:48:06+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2015-08-30T23:25:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=d53c8880696856d695b0979c55136b06e45d6fbb'/>
<id>d53c8880696856d695b0979c55136b06e45d6fbb</id>
<content type='text'>
Some nicer refactoring for index iteration walks.

The index iterator doesn't binary search through the pathlist space,
since it lacks directory entries, and would have to binary search
each index entry and all its parents (eg, when presented with an index
entry of `foo/bar/file.c`, you would have to look in the pathlist for
`foo/bar/file.c`, `foo/bar` and `foo`).  Since the index entries and the
pathlist are both nicely sorted, we walk the index entries in lockstep
with the pathlist like we do for other iteration/diff/merge walks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some nicer refactoring for index iteration walks.

The index iterator doesn't binary search through the pathlist space,
since it lacks directory entries, and would have to binary search
each index entry and all its parents (eg, when presented with an index
entry of `foo/bar/file.c`, you would have to look in the pathlist for
`foo/bar/file.c`, `foo/bar` and `foo`).  Since the index entries and the
pathlist are both nicely sorted, we walk the index entries in lockstep
with the pathlist like we do for other iteration/diff/merge walks.
</pre>
</div>
</content>
</entry>
</feed>
