<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/src, branch ethomson/read_prefix</title>
<subtitle>github.com: libgit2/libgit2.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/'/>
<entry>
<title>odb_read_prefix: reset error in backends loop</title>
<updated>2017-06-12T11:56:40+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2017-06-12T11:56:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=cb3010c54a4b35e8799a157bdff4eae0378eb8db'/>
<id>cb3010c54a4b35e8799a157bdff4eae0378eb8db</id>
<content type='text'>
When looking for an object by prefix, we query all the backends so that
we can ensure that there is no ambiguity.  We need to reset the `error`
value between backends; otherwise the first backend may find an object
by prefix, but subsequent backends may not.  If we do not reset the
`error` value then it will remain at `GIT_ENOTFOUND` and `read_prefix_1`
will fail, despite having actually found an object.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When looking for an object by prefix, we query all the backends so that
we can ensure that there is no ambiguity.  We need to reset the `error`
value between backends; otherwise the first backend may find an object
by prefix, but subsequent backends may not.  If we do not reset the
`error` value then it will remain at `GIT_ENOTFOUND` and `read_prefix_1`
will fail, despite having actually found an object.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #4088 from chescock/packfile-name-using-complete-hash</title>
<updated>2017-06-11T09:37:46+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2017-06-11T09:37:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=6f960b553b5392db0bf7435f1567b3b1cff71af1'/>
<id>6f960b553b5392db0bf7435f1567b3b1cff71af1</id>
<content type='text'>
Ensure packfiles with different contents have different names</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ensure packfiles with different contents have different names</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #4260 from libgit2/ethomson/forced_checkout_2</title>
<updated>2017-06-11T08:54:04+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2017-06-11T08:54:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=d2c4f7645cab7d9ce0261d03cd7b5226cab90b63'/>
<id>d2c4f7645cab7d9ce0261d03cd7b5226cab90b63</id>
<content type='text'>
Update to forced checkout and untracked files</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update to forced checkout and untracked files</pre>
</div>
</content>
</entry>
<entry>
<title>git_futils_rmdir: only allow `EBUSY` when asked</title>
<updated>2017-06-10T18:18:57+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2017-06-10T17:46:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=4a0df574114f331a2428278c5f72aae7a49fa214'/>
<id>4a0df574114f331a2428278c5f72aae7a49fa214</id>
<content type='text'>
Only ignore `EBUSY` from `rmdir` when the `GIT_RMDIR_SKIP_NONEMPTY` bit
is set.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Only ignore `EBUSY` from `rmdir` when the `GIT_RMDIR_SKIP_NONEMPTY` bit
is set.
</pre>
</div>
</content>
</entry>
<entry>
<title>checkout: cope with untracked files in directory deletion</title>
<updated>2017-06-10T18:16:48+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2017-06-08T21:23:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=83989d70ecd39324a9c262e75ce27b6a33cf78fc'/>
<id>83989d70ecd39324a9c262e75ce27b6a33cf78fc</id>
<content type='text'>
When deleting a directory during checkout, do not simply delete the
directory, since there may be untracked files.  Instead, go into
the iterator and examine each file.

In the original code (the code with the faulty assumption), we look to
see if there's an index entry beneath the directory that we want to
remove.   Eg, it looks to see if we have a workdir entry foo and an
index entry foo/bar.txt. If this is not the case, then the working
directory must have precious files in that directory. This part is okay.
The part that's not okay is if there is an index entry foo/bar.txt. It
just blows away the whole damned directory.

That's not cool.

Instead, by simply pushing the directory itself onto the stack and
iterating each entry, we will deal with the files one by one - whether
they're in the index (and can be force removed) or not (and are
precious).

The original code was a bad optimization, assuming that we didn't need
to git_iterator_advance_into if there was any index entry in the folder.
That's wrong - we could have optimized this iff all folder entries are
in the index.

Instead, we need to simply dig into the directory and analyze its
entries.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When deleting a directory during checkout, do not simply delete the
directory, since there may be untracked files.  Instead, go into
the iterator and examine each file.

In the original code (the code with the faulty assumption), we look to
see if there's an index entry beneath the directory that we want to
remove.   Eg, it looks to see if we have a workdir entry foo and an
index entry foo/bar.txt. If this is not the case, then the working
directory must have precious files in that directory. This part is okay.
The part that's not okay is if there is an index entry foo/bar.txt. It
just blows away the whole damned directory.

That's not cool.

Instead, by simply pushing the directory itself onto the stack and
iterating each entry, we will deal with the files one by one - whether
they're in the index (and can be force removed) or not (and are
precious).

The original code was a bad optimization, assuming that we didn't need
to git_iterator_advance_into if there was any index entry in the folder.
That's wrong - we could have optimized this iff all folder entries are
in the index.

Instead, we need to simply dig into the directory and analyze its
entries.
</pre>
</div>
</content>
</entry>
<entry>
<title>settings: rename `GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION`</title>
<updated>2017-06-08T19:40:18+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2017-06-08T19:40:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=6c23704df5d19239f8c3d6f69da62bdbe1cf287d'/>
<id>6c23704df5d19239f8c3d6f69da62bdbe1cf287d</id>
<content type='text'>
Initially, the setting has been solely used to enable the use of
`fsync()` when creating objects. Since then, the use has been extended
to also cover references and index files. As the option is not yet part
of any release, we can still correct this by renaming the option to
something more sensible, indicating not only correlation to objects.

This commit renames the option to `GIT_OPT_ENABLE_FSYNC_GITDIR`. We also
move the variable from the object to repository source code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Initially, the setting has been solely used to enable the use of
`fsync()` when creating objects. Since then, the use has been extended
to also cover references and index files. As the option is not yet part
of any release, we can still correct this by renaming the option to
something more sensible, indicating not only correlation to objects.

This commit renames the option to `GIT_OPT_ENABLE_FSYNC_GITDIR`. We also
move the variable from the object to repository source code.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #4255 from pks-t/pks/buffer-grow-errors</title>
<updated>2017-06-08T12:22:24+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2017-06-08T12:22:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=458cea5c5b820f9766cb5ba4c3d89830592d655b'/>
<id>458cea5c5b820f9766cb5ba4c3d89830592d655b</id>
<content type='text'>
Buffer growing cleanups</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Buffer growing cleanups</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #4253 from pks-t/pks/cov-fixes</title>
<updated>2017-06-08T11:56:22+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2017-06-08T11:56:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=90500d81dcb04ae3bdaf0f6211ca8754d9425b70'/>
<id>90500d81dcb04ae3bdaf0f6211ca8754d9425b70</id>
<content type='text'>
Coverity fixes</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Coverity fixes</pre>
</div>
</content>
</entry>
<entry>
<title>refdb_fs: be explicit about using null-OID if we cannot resolve ref</title>
<updated>2017-06-08T10:05:35+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2017-06-06T13:02:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=90388aa836fc463f87cc9dfd41823022055a40fa'/>
<id>90388aa836fc463f87cc9dfd41823022055a40fa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>path: only set dotgit flags when configs were read</title>
<updated>2017-06-08T10:05:35+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2017-06-06T12:57:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=78a8f68f06b51b064020e5f9c3b564ccf3ad02d9'/>
<id>78a8f68f06b51b064020e5f9c3b564ccf3ad02d9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
