<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git, branch rb/stash-skip-submodules</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>Handle explicitly ignored dir slightly differently</title>
<updated>2014-04-24T18:59:50+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2014-04-24T18:59:50+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=a409acefbbadeb607e4d6dde681bff5aed6ae9fc'/>
<id>a409acefbbadeb607e4d6dde681bff5aed6ae9fc</id>
<content type='text'>
When considering status of untracked directories, if we find an
explicitly ignored item, even if it is a directory, treat the
parent as an IGNORED item.  It was accidentally being treated as
an EMPTY item because we were not looking into the ignored subdir.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When considering status of untracked directories, if we find an
explicitly ignored item, even if it is a directory, treat the
parent as an IGNORED item.  It was accidentally being treated as
an EMPTY item because we were not looking into the ignored subdir.
</pre>
</div>
</content>
</entry>
<entry>
<title>Treat ignored, empty, and untracked dirs different</title>
<updated>2014-04-23T23:28:45+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2014-04-23T23:28:45+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=219c89d19d7e18a336faa094b0c29cb7bb0d22c6'/>
<id>219c89d19d7e18a336faa094b0c29cb7bb0d22c6</id>
<content type='text'>
In the iterator, distinguish between ignores and empty directories
so that diff and status can ignore empty directories, but checkout
and stash can treat them as untracked items.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the iterator, distinguish between ignores and empty directories
so that diff and status can ignore empty directories, but checkout
and stash can treat them as untracked items.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make checkout match diff for untracked/ignored dir</title>
<updated>2014-04-23T04:51:54+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2014-04-23T04:51:54+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=37da368545b28157e625212e8009ec041cc4a4ea'/>
<id>37da368545b28157e625212e8009ec041cc4a4ea</id>
<content type='text'>
When diff finds an untracked directory, it emulates Git behavior
by looking inside the directory to see if there are any untracked
items inside it. If there are only ignored items inside the dir,
then diff considers it ignored, even if there is no direct ignore
rule for it.

Checkout was not copying this behavior - when it found an untracked
directory, it just treated it as untracked.  Unfortunately, when
combined with GIT_CHECKOUT_REMOVE_UNTRACKED, this made is seem that
checkout (and stash, which uses checkout) was removing ignored
items when you had only asked it to remove untracked ones.

This commit moves the logic for advancing past an untracked dir
while scanning for non-ignored items into an iterator helper fn,
and uses that for both diff and checkout.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When diff finds an untracked directory, it emulates Git behavior
by looking inside the directory to see if there are any untracked
items inside it. If there are only ignored items inside the dir,
then diff considers it ignored, even if there is no direct ignore
rule for it.

Checkout was not copying this behavior - when it found an untracked
directory, it just treated it as untracked.  Unfortunately, when
combined with GIT_CHECKOUT_REMOVE_UNTRACKED, this made is seem that
checkout (and stash, which uses checkout) was removing ignored
items when you had only asked it to remove untracked ones.

This commit moves the logic for advancing past an untracked dir
while scanning for non-ignored items into an iterator helper fn,
and uses that for both diff and checkout.
</pre>
</div>
</content>
</entry>
<entry>
<title>Failing test for stashing a buried ignored file</title>
<updated>2014-04-22T22:23:43+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2014-04-22T22:23:39+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=3c1aa4c110d2d4c8c3d941b0e4ba66357172da2e'/>
<id>3c1aa4c110d2d4c8c3d941b0e4ba66357172da2e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make stash and checkout ignore contained repos</title>
<updated>2014-04-22T22:23:43+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2014-04-02T19:07:27+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=24d17de255caa57b01c0c758e6fc81aad493806e'/>
<id>24d17de255caa57b01c0c758e6fc81aad493806e</id>
<content type='text'>
To emulate git, stash should not remove untracked git repositories
inside the parent repo, and checkout's REMOVE_UNTRACKED should
also skip over these items.

`git stash` actually prints a warning message for these items.
That should be possible with a checkout notify callback if you
wanted to, although it would require a bit of extra logic as things
are at the moment.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To emulate git, stash should not remove untracked git repositories
inside the parent repo, and checkout's REMOVE_UNTRACKED should
also skip over these items.

`git stash` actually prints a warning message for these items.
That should be possible with a checkout notify callback if you
wanted to, although it would require a bit of extra logic as things
are at the moment.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2282 from libgit2/cmn/remote-easier-bind</title>
<updated>2014-04-22T13:07:18+00:00</updated>
<author>
<name>Vicent Marti</name>
<email>vicent@github.com</email>
</author>
<published>2014-04-22T13:07:18+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=a32d684f866e7710fd139d69ad5d1a8d0ae527c4'/>
<id>a32d684f866e7710fd139d69ad5d1a8d0ae527c4</id>
<content type='text'>
A few niceties for binding authors</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A few niceties for binding authors</pre>
</div>
</content>
</entry>
<entry>
<title>transports: allow the creds callback to say it doesn't exist</title>
<updated>2014-04-22T12:34:26+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-04-19T13:52:58+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=bc0a61986745b89258a98773f88bd98c44ef88d5'/>
<id>bc0a61986745b89258a98773f88bd98c44ef88d5</id>
<content type='text'>
Allow the credentials callback to return GIT_PASSTHROUGH to make the
transports code behave as though none was set.

This should make it easier for bindings to behave closer to the C code
when there is no credentials callback set at their level.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allow the credentials callback to return GIT_PASSTHROUGH to make the
transports code behave as though none was set.

This should make it easier for bindings to behave closer to the C code
when there is no credentials callback set at their level.
</pre>
</div>
</content>
</entry>
<entry>
<title>remote: provide read access to the callback structure</title>
<updated>2014-04-22T12:32:19+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2014-04-19T13:34:12+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=2efd7df6b11e8c646d05870965bb4588d6b6d425'/>
<id>2efd7df6b11e8c646d05870965bb4588d6b6d425</id>
<content type='text'>
This should make it easier for bindings to dynamically override their
own callbacks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should make it easier for bindings to dynamically override their
own callbacks.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2287 from libgit2/rb/moar-coverity-fixes</title>
<updated>2014-04-22T09:04:35+00:00</updated>
<author>
<name>Vicent Marti</name>
<email>vicent@github.com</email>
</author>
<published>2014-04-22T09:04:35+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=dac95e4aa33a21c2180566558726e1a3d5c0399a'/>
<id>dac95e4aa33a21c2180566558726e1a3d5c0399a</id>
<content type='text'>
Fix some issues from the last Coverity scan</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix some issues from the last Coverity scan</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2286 from libgit2/rb/fix-reset-staged-delete</title>
<updated>2014-04-22T09:03:42+00:00</updated>
<author>
<name>Vicent Marti</name>
<email>vicent@github.com</email>
</author>
<published>2014-04-22T09:03:42+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=2e609e2931b107e87b06d22fdcd21f337ab73155'/>
<id>2e609e2931b107e87b06d22fdcd21f337ab73155</id>
<content type='text'>
Fix reset for staged deletes</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix reset for staged deletes</pre>
</div>
</content>
</entry>
</feed>
