<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/src/buffer.h, branch attr-export</title>
<subtitle>github.com: libgit2/libgit2.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/'/>
<entry>
<title>Add git_buf_unescape and git__unescape to unescape all characters in a string (in-place)</title>
<updated>2012-07-24T12:03:07+00:00</updated>
<author>
<name>yorah</name>
<email>yoram.harmelin@gmail.com</email>
</author>
<published>2012-07-12T14:31:59+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=02a0d651d79b2108dd6b894b9a43f7682270ac51'/>
<id>02a0d651d79b2108dd6b894b9a43f7682270ac51</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a couple of useful git_buf utilities</title>
<updated>2012-07-11T06:19:47+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2012-07-10T22:10:14+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=039fc4067989a14a09784ed16ce7126ac75461cb'/>
<id>039fc4067989a14a09784ed16ce7126ac75461cb</id>
<content type='text'>
* `git_buf_rfind` (with tests and tests for `git_buf_rfind_next`)
* `git_buf_puts_escaped` and `git_buf_puts_escaped_regex` (with tests)
  to copy strings into a buffer while injecting an escape sequence
  (e.g. '\') in front of particular characters.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* `git_buf_rfind` (with tests and tests for `git_buf_rfind_next`)
* `git_buf_puts_escaped` and `git_buf_puts_escaped_regex` (with tests)
  to copy strings into a buffer while injecting an escape sequence
  (e.g. '\') in front of particular characters.
</pre>
</div>
</content>
</entry>
<entry>
<title>Other optimization and warning fixes</title>
<updated>2012-05-17T20:14:17+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2012-05-17T20:14:17+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=a0d959628f2a9eff65088c3247f237aef5205e73'/>
<id>a0d959628f2a9eff65088c3247f237aef5205e73</id>
<content type='text'>
This fixes a warning left by the earlier optimization and
addresses one of the other hotspots identified by GProf.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes a warning left by the earlier optimization and
addresses one of the other hotspots identified by GProf.
</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize away git_text_gather_stats in diff</title>
<updated>2012-05-17T20:06:20+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2012-05-17T20:06:20+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=b59c73d39a0bb3ddb6fd4e81f796018c2b3a0579'/>
<id>b59c73d39a0bb3ddb6fd4e81f796018c2b3a0579</id>
<content type='text'>
GProf shows `git_text_gather_stats` as the most expensive call
in large diffs.  The function calculates a lot of information
that is not actually used and does not do so in a optimal
order.  This introduces a tuned `git_buf_is_binary` function
that executes the same algorithm in a fraction of the time.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GProf shows `git_text_gather_stats` as the most expensive call
in large diffs.  The function calculates a lot of information
that is not actually used and does not do so in a optimal
order.  This introduces a tuned `git_buf_is_binary` function
that executes the same algorithm in a fraction of the time.
</pre>
</div>
</content>
</entry>
<entry>
<title>Document git_buf_common_prefix</title>
<updated>2012-05-15T23:33:05+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2012-05-15T23:33:05+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=2c8339172878cd935eee0d9eb6db747cebd70a72'/>
<id>2c8339172878cd935eee0d9eb6db747cebd70a72</id>
<content type='text'>
This function fills in a git_buf with the common prefix of
an array of strings, but let's make that a little more clear.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This function fills in a git_buf with the common prefix of
an array of strings, but let's make that a little more clear.
</pre>
</div>
</content>
</entry>
<entry>
<title>Ranged iterators and rewritten git_status_file</title>
<updated>2012-05-15T21:34:15+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2012-05-15T21:17:39+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=41a82592ef56a216f96558942d717af15589071d'/>
<id>41a82592ef56a216f96558942d717af15589071d</id>
<content type='text'>
The goal of this work is to rewrite git_status_file to use the
same underlying code as git_status_foreach.

This is done in 3 phases:

1. Extend iterators to allow ranged iteration with start and
   end prefixes for the range of file names to be covered.
2. Improve diff so that when there is a pathspec and there is
   a common non-wildcard prefix of the pathspec, it will use
   ranged iterators to minimize excess iteration.
3. Rewrite git_status_file to call git_status_foreach_ext
   with a pathspec that covers just the one file being checked.

Since ranged iterators underlie the status &amp; diff implementation,
this is actually fairly efficient.  The workdir iterator does
end up loading the contents of all the directories down to the
single file, which should ideally be avoided, but it is pretty
good.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The goal of this work is to rewrite git_status_file to use the
same underlying code as git_status_foreach.

This is done in 3 phases:

1. Extend iterators to allow ranged iteration with start and
   end prefixes for the range of file names to be covered.
2. Improve diff so that when there is a pathspec and there is
   a common non-wildcard prefix of the pathspec, it will use
   ranged iterators to minimize excess iteration.
3. Rewrite git_status_file to call git_status_foreach_ext
   with a pathspec that covers just the one file being checked.

Since ranged iterators underlie the status &amp; diff implementation,
this is actually fairly efficient.  The workdir iterator does
end up loading the contents of all the directories down to the
single file, which should ideally be avoided, but it is pretty
good.
</pre>
</div>
</content>
</entry>
<entry>
<title>compat: Add `stdarg.h` include</title>
<updated>2012-05-06T05:14:02+00:00</updated>
<author>
<name>Vicent Martí</name>
<email>tanoku@gmail.com</email>
</author>
<published>2012-05-06T05:14:02+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=3972ca43d8bc64247159c118ea8b261b5efaf35d'/>
<id>3972ca43d8bc64247159c118ea8b261b5efaf35d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>buffer: Add `git_buf_vprintf`</title>
<updated>2012-05-03T07:03:58+00:00</updated>
<author>
<name>Vicent Martí</name>
<email>tanoku@gmail.com</email>
</author>
<published>2012-05-03T06:44:22+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=baaf1c47101acd0be28bbdeb2792c208d22b3a20'/>
<id>baaf1c47101acd0be28bbdeb2792c208d22b3a20</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>buf: add git_buf_len() accessor to expose the current length of the buffer content</title>
<updated>2012-04-29T17:16:26+00:00</updated>
<author>
<name>nulltoken</name>
<email>emeric.fermas@gmail.com</email>
</author>
<published>2012-04-29T17:08:48+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=da3c187d5e3f8dae63014a4dab0dd2c72baed2d5'/>
<id>da3c187d5e3f8dae63014a4dab0dd2c72baed2d5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert attr, ignore, mwindow, status to new errors</title>
<updated>2012-03-16T22:56:01+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>arrbee@arrbee.com</email>
</author>
<published>2012-03-16T22:56:01+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=0d0fa7c3681e4ef3d0452666a9bc97d4b08391c9'/>
<id>0d0fa7c3681e4ef3d0452666a9bc97d4b08391c9</id>
<content type='text'>
Also cleaned up some previously converted code that still had
little things to polish.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also cleaned up some previously converted code that still had
little things to polish.
</pre>
</div>
</content>
</entry>
</feed>
