<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/tests, branch cmn/empty-objects</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>odb: hardcode the empty blob and tree</title>
<updated>2014-11-08T19:53:38+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-11-08T13:40:53+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=e1ac0101480c29631ad56409d77f2dd7b65bfd09'/>
<id>e1ac0101480c29631ad56409d77f2dd7b65bfd09</id>
<content type='text'>
git hardocodes these as objects which exist regardless of whether they
are in the odb and uses them in the shell interface as a way of
expressing the lack of a blob or tree for one side of e.g. a diff.

In the library we use each language's natural way of declaring a lack of
value which makes a workaround like this unnecessary. Since git uses it,
it does however mean each shell application would need to perform this
check themselves.

This makes it common work across a range of applications and an issue
with compatibility with git, which fits right into what the library aims
to provide.

Thus we introduce the hard-coded empty blob and tree in the odb
frontend. These hard-coded objects are checked for before going to the
backends, but after the cache check, which means the second time they're
used, they will be treated as normal cached objects instead of creating
new ones.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git hardocodes these as objects which exist regardless of whether they
are in the odb and uses them in the shell interface as a way of
expressing the lack of a blob or tree for one side of e.g. a diff.

In the library we use each language's natural way of declaring a lack of
value which makes a workaround like this unnecessary. Since git uses it,
it does however mean each shell application would need to perform this
check themselves.

This makes it common work across a range of applications and an issue
with compatibility with git, which fits right into what the library aims
to provide.

Thus we introduce the hard-coded empty blob and tree in the odb
frontend. These hard-coded objects are checked for before going to the
backends, but after the cache check, which means the second time they're
used, they will be treated as normal cached objects instead of creating
new ones.
</pre>
</div>
</content>
</entry>
<entry>
<title>iterator: submodules are determined by an index or tree</title>
<updated>2014-11-07T07:33:27+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-11-06T15:16:46+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=62a617dc683c1e73eebd0e1b6209f76748e67ed4'/>
<id>62a617dc683c1e73eebd0e1b6209f76748e67ed4</id>
<content type='text'>
We cannot know from looking at .gitmodules whether a directory is a
submodule or not. We need the index or tree we are comparing against to
tell us. Otherwise we have to assume the entry in .gitmodules is stale
or otherwise invalid.

Thus we pass the index of the repository into the workdir iterator, even
if we do not want to compare against it. This follows what git does,
which even for `git diff &lt;tree&gt;`, it will consider staged submodules as
such.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We cannot know from looking at .gitmodules whether a directory is a
submodule or not. We need the index or tree we are comparing against to
tell us. Otherwise we have to assume the entry in .gitmodules is stale
or otherwise invalid.

Thus we pass the index of the repository into the workdir iterator, even
if we do not want to compare against it. This follows what git does,
which even for `git diff &lt;tree&gt;`, it will consider staged submodules as
such.
</pre>
</div>
</content>
</entry>
<entry>
<title>submodules: add failing test for stale module entries</title>
<updated>2014-11-07T07:33:27+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-11-06T10:47:50+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=f1a7906fdf0657fba88449bdab07237847f36670'/>
<id>f1a7906fdf0657fba88449bdab07237847f36670</id>
<content type='text'>
We consider an entry in .gitmodules to mean that we have a submodule at
a particular path, even if HEAD^{tree} and the index do not contain any
reference to it.

We should ignore that submodule entry and simply consider that path to
be a regular directory.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We consider an entry in .gitmodules to mean that we have a submodule at
a particular path, even if HEAD^{tree} and the index do not contain any
reference to it.

We should ignore that submodule entry and simply consider that path to
be a regular directory.
</pre>
</div>
</content>
</entry>
<entry>
<title>checkout_index: Remove stage 0 when checking out conflicts</title>
<updated>2014-11-06T23:50:10+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2014-11-06T23:49:37+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=2d24816b4611a7392617855f497f81f385092f34'/>
<id>2d24816b4611a7392617855f497f81f385092f34</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>checkout_index: remove conflicts when checking out new files</title>
<updated>2014-11-06T23:49:57+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2014-11-06T19:40:21+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=9f664347ff74716dc35ff0bd9a1a87606ae29cf0'/>
<id>9f664347ff74716dc35ff0bd9a1a87606ae29cf0</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 #2598 from libgit2/cmn/stacked-ignore</title>
<updated>2014-11-06T15:38:25+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2014-11-06T15:38:25+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=64dc248577940c7874939bb82b6a557bafe8c388'/>
<id>64dc248577940c7874939bb82b6a557bafe8c388</id>
<content type='text'>
ignore: don't leak rules into higher directores</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ignore: don't leak rules into higher directores</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2682 from libgit2/cmn/fetch-tags-refspec</title>
<updated>2014-11-06T15:19:22+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2014-11-06T15:19:22+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=f890a84fe00091ac4b9430c131e25d5bf6d3eafe'/>
<id>f890a84fe00091ac4b9430c131e25d5bf6d3eafe</id>
<content type='text'>
remote: check for the validity of the refspec when updating FETCH_HEAD</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
remote: check for the validity of the refspec when updating FETCH_HEAD</pre>
</div>
</content>
</entry>
<entry>
<title>ignore: add failing test for a file mentioning the parent</title>
<updated>2014-11-06T09:10:26+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-10-04T09:48:50+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=0798b01400315db85715277d00f7a1262a5ed125'/>
<id>0798b01400315db85715277d00f7a1262a5ed125</id>
<content type='text'>
When we mention "src" in src/.gitignore, we wrongly consider src/ itself
to be ignored.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When we mention "src" in src/.gitignore, we wrongly consider src/ itself
to be ignored.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2688 from libgit2/cmn/ignore-file-trailing-cr</title>
<updated>2014-11-05T15:47:19+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2014-11-05T15:47:19+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=b4e5432ff032c7d05c82ad2871e27f990493d6b7'/>
<id>b4e5432ff032c7d05c82ad2871e27f990493d6b7</id>
<content type='text'>
ignore: consider files with a CR in their names</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ignore: consider files with a CR in their names</pre>
</div>
</content>
</entry>
<entry>
<title>ignore: consider files with a CR in their names</title>
<updated>2014-11-05T15:22:01+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-11-05T15:07:07+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=5c54e2162a21cb909e961c62f53e7d4c64f80cb0'/>
<id>5c54e2162a21cb909e961c62f53e7d4c64f80cb0</id>
<content type='text'>
We currently consider CR to start the end of the line, but that means
that we miss cases with CR CR LF which can be used with git to match
files whose names have CR at the end of their names.

The fix from the patch comes from Russell's comment in the issue.

This fixes #2536.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We currently consider CR to start the end of the line, but that means
that we miss cases with CR CR LF which can be used with git to match
files whose names have CR at the end of their names.

The fix from the patch comes from Russell's comment in the issue.

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