<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/src, branch ethomson/patch_from_diff</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>Teach `git_patch_from_diff` about parsed diffs</title>
<updated>2016-08-24T14:08:57+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-08-24T04:38:39+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=b859faa61ce3f1fda5c29ac1e72a3d58fee2ede6'/>
<id>b859faa61ce3f1fda5c29ac1e72a3d58fee2ede6</id>
<content type='text'>
Ensure that `git_patch_from_diff` can return the patch for parsed diffs,
not just generate a patch for a generated diff.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ensure that `git_patch_from_diff` can return the patch for parsed diffs,
not just generate a patch for a generated diff.
</pre>
</div>
</content>
</entry>
<entry>
<title>filesystem_iterator: fixed double free on error</title>
<updated>2016-08-22T15:27:47+00:00</updated>
<author>
<name>Jason Haslam</name>
<email>jason@scitools.com</email>
</author>
<published>2016-08-22T15:27:47+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=7a3f1de500423ed1cdf1d97a273146f2098b672e'/>
<id>7a3f1de500423ed1cdf1d97a273146f2098b672e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #3837 from novalis/dturner/indexv4</title>
<updated>2016-08-17T14:24:44+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-08-17T14:24:44+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=c1b370e9313a13df350974e2237997cc651a5d67'/>
<id>c1b370e9313a13df350974e2237997cc651a5d67</id>
<content type='text'>
Support index v4</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Support index v4</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #3895 from pks-t/pks/negate-basename-in-subdirs</title>
<updated>2016-08-17T13:54:48+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-08-17T13:54:48+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=635a922274046ee077235b9764d0360e33d735ab'/>
<id>635a922274046ee077235b9764d0360e33d735ab</id>
<content type='text'>
ignore: allow unignoring basenames in subdirectories</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ignore: allow unignoring basenames in subdirectories</pre>
</div>
</content>
</entry>
<entry>
<title>ignore: allow unignoring basenames in subdirectories</title>
<updated>2016-08-12T12:47:54+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2016-08-12T07:06:15+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=fcb2c1c8956200f49263e6e0b3c681d100af4734'/>
<id>fcb2c1c8956200f49263e6e0b3c681d100af4734</id>
<content type='text'>
The .gitignore file allows for patterns which unignore previous
ignore patterns. When unignoring a previous pattern, there are
basically three cases how this is matched when no globbing is
used:

1. when a previous file has been ignored, it can be unignored by
   using its exact name, e.g.

   foo/bar
   !foo/bar

2. when a file in a subdirectory has been ignored, it can be
   unignored by using its basename, e.g.

   foo/bar
   !bar

3. when all files with a basename are ignored, a specific file
   can be unignored again by specifying its path in a
   subdirectory, e.g.

   bar
   !foo/bar

The first problem in libgit2 is that we did not correctly treat
the second case. While we verified that the negative pattern
matches the tail of the positive one, we did not verify if it
only matches the basename of the positive pattern. So e.g. we
would have also negated a pattern like

    foo/fruz_bar
    !bar

Furthermore, we did not check for the third case, where a
basename is being unignored in a certain subdirectory again.

Both issues are fixed with this commit.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The .gitignore file allows for patterns which unignore previous
ignore patterns. When unignoring a previous pattern, there are
basically three cases how this is matched when no globbing is
used:

1. when a previous file has been ignored, it can be unignored by
   using its exact name, e.g.

   foo/bar
   !foo/bar

2. when a file in a subdirectory has been ignored, it can be
   unignored by using its basename, e.g.

   foo/bar
   !bar

3. when all files with a basename are ignored, a specific file
   can be unignored again by specifying its path in a
   subdirectory, e.g.

   bar
   !foo/bar

The first problem in libgit2 is that we did not correctly treat
the second case. While we verified that the negative pattern
matches the tail of the positive one, we did not verify if it
only matches the basename of the positive pattern. So e.g. we
would have also negated a pattern like

    foo/fruz_bar
    !bar

Furthermore, we did not check for the third case, where a
basename is being unignored in a certain subdirectory again.

Both issues are fixed with this commit.
</pre>
</div>
</content>
</entry>
<entry>
<title>index: support index v4</title>
<updated>2016-08-10T18:19:30+00:00</updated>
<author>
<name>David Turner</name>
<email>dturner@twopensource.com</email>
</author>
<published>2016-05-17T19:40:32+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=5625d86b994fd81f1b0d887890e8168d7b5f46cc'/>
<id>5625d86b994fd81f1b0d887890e8168d7b5f46cc</id>
<content type='text'>
Support reading and writing index v4.  Index v4 uses a very simple
compression scheme for pathnames, but is otherwise similar to index v3.

Signed-off-by: David Turner &lt;dturner@twitter.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Support reading and writing index v4.  Index v4 uses a very simple
compression scheme for pathnames, but is otherwise similar to index v3.

Signed-off-by: David Turner &lt;dturner@twitter.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>varint: Add varint encoding/decoding</title>
<updated>2016-08-10T18:19:06+00:00</updated>
<author>
<name>David Turner</name>
<email>dturner@twopensource.com</email>
</author>
<published>2016-05-17T19:40:46+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=aeb5ee5ab50a062aac02ca084b02582430669808'/>
<id>aeb5ee5ab50a062aac02ca084b02582430669808</id>
<content type='text'>
This code is ported from git.git

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Signed-off-by: David Turner &lt;dturner@twopensource.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This code is ported from git.git

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Signed-off-by: David Turner &lt;dturner@twopensource.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>stransport: do not use `git_stream_free` on uninitialized stransport</title>
<updated>2016-08-09T06:38:54+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2016-08-08T12:47:32+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=b989514405e2223f12040d3f940185378041c95c'/>
<id>b989514405e2223f12040d3f940185378041c95c</id>
<content type='text'>
When failing to initialize a new stransport stream, we try to
release already allocated memory by calling out to
`git_stream_free`, which in turn called out to the stream's
`free` function pointer. As we only initialize the function
pointer later on, this leads to a `NULL` pointer exception.

Furthermore, plug another memory leak when failing to create the
SSL context.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When failing to initialize a new stransport stream, we try to
release already allocated memory by calling out to
`git_stream_free`, which in turn called out to the stream's
`free` function pointer. As we only initialize the function
pointer later on, this leads to a `NULL` pointer exception.

Furthermore, plug another memory leak when failing to create the
SSL context.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #3887 from libgit2/ethomson/empty_blob</title>
<updated>2016-08-08T13:13:59+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>carlosmn@github.com</email>
</author>
<published>2016-08-08T13:13:59+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=97e57e8770132d61ff2c36bee2de2c7ac5c9d609'/>
<id>97e57e8770132d61ff2c36bee2de2c7ac5c9d609</id>
<content type='text'>
odb: only provide the empty tree</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
odb: only provide the empty tree</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #3890 from pks-t/pks/stransport-static-linkage</title>
<updated>2016-08-08T12:42:32+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-08-08T12:42:32+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=b47e79e2cd68a507311ee0276a3503f7e00591d0'/>
<id>b47e79e2cd68a507311ee0276a3503f7e00591d0</id>
<content type='text'>
stransport: make internal functions static</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
stransport: make internal functions static</pre>
</div>
</content>
</entry>
</feed>
