<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/tests, 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>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>Merge pull request #3893 from pks-t/pks/remove-unused-test-cb</title>
<updated>2016-08-09T12:07:10+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-08-09T12:07:10+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=5961face15148dd13fd89ab946a627a466434461'/>
<id>5961face15148dd13fd89ab946a627a466434461</id>
<content type='text'>
tests: blob: remove unused callback function</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
tests: blob: remove unused callback function</pre>
</div>
</content>
</entry>
<entry>
<title>tests: blob: remove unused callback function</title>
<updated>2016-08-09T08:09:23+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2016-08-09T08:09:23+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=4006455f01f22ccbdab99958d76166a3911632d0'/>
<id>4006455f01f22ccbdab99958d76166a3911632d0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>odb: actually insert the empty blob in tests</title>
<updated>2016-08-06T00:34:19+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-08-06T00:34:19+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=9bc8c80ffa3d20e958406a104c521e2aae0f1255'/>
<id>9bc8c80ffa3d20e958406a104c521e2aae0f1255</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>odb: only provide the empty tree</title>
<updated>2016-08-05T23:30:56+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-08-05T23:30:56+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=becadafca8b3ac69884c43a8826f929668cc7663'/>
<id>becadafca8b3ac69884c43a8826f929668cc7663</id>
<content type='text'>
Only provide the empty tree internally, which matches git's behavior.
If we provide the empty blob then any users trying to write it with
libgit2 would omit it from actually landing in the odb, which appear
to git proper as a broken repository (missing that object).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Only provide the empty tree internally, which matches git's behavior.
If we provide the empty blob then any users trying to write it with
libgit2 would omit it from actually landing in the odb, which appear
to git proper as a broken repository (missing that object).
</pre>
</div>
</content>
</entry>
</feed>
