<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/src/index.h, branch cmn/init-libssh2</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>Fix the build when defining USE_NSEC</title>
<updated>2016-01-25T12:06:15+00:00</updated>
<author>
<name>Marius Ungureanu</name>
<email>marius.ungureanu@xamarin.com</email>
</author>
<published>2016-01-25T12:06:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=0c09753cf50bbd9639c50af61b1cedf50da5f1c6'/>
<id>0c09753cf50bbd9639c50af61b1cedf50da5f1c6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>index: get rid of the locking</title>
<updated>2015-12-28T13:55:44+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2015-12-23T11:54:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=9d81509ab16f26dcf2cdf0e4b5c0d0006f30b53a'/>
<id>9d81509ab16f26dcf2cdf0e4b5c0d0006f30b53a</id>
<content type='text'>
We don't support using an index object from multiple threads at the same
time, so the locking doesn't have any effect when following the
rules. If not following the rules, things are going to break down
anyway.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We don't support using an index object from multiple threads at the same
time, so the locking doesn't have any effect when following the
rules. If not following the rules, things are going to break down
anyway.
</pre>
</div>
</content>
</entry>
<entry>
<title>merge: Use `git_index__fill` to populate the index</title>
<updated>2015-12-16T11:30:52+00:00</updated>
<author>
<name>Vicent Marti</name>
<email>tanoku@gmail.com</email>
</author>
<published>2015-12-16T11:30:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=879ebab314fe60cc737d436f62f190260ce13c1a'/>
<id>879ebab314fe60cc737d436f62f190260ce13c1a</id>
<content type='text'>
Instead of calling `git_index_add` in a loop, use the new
`git_index_fill` internal API to fill the index with the initial staged
entries.

The new `fill` helper assumes that all the entries will be unique and
valid, so it can append them at the end of the entries vector and only
sort it once at the end. It performs no validation checks.

This prevents the quadratic behavior caused by having to sort the
entries list once after every insertion.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of calling `git_index_add` in a loop, use the new
`git_index_fill` internal API to fill the index with the initial staged
entries.

The new `fill` helper assumes that all the entries will be unique and
valid, so it can append them at the end of the entries vector and only
sort it once at the end. It performs no validation checks.

This prevents the quadratic behavior caused by having to sort the
entries list once after every insertion.
</pre>
</div>
</content>
</entry>
<entry>
<title>checkout: only consider nsecs when built that way</title>
<updated>2015-11-23T20:49:54+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2015-11-23T20:49:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=25e84f959ae77f21c32849aa98f274b9d8283f2d'/>
<id>25e84f959ae77f21c32849aa98f274b9d8283f2d</id>
<content type='text'>
When examining the working directory and determining whether it's
up-to-date, only consider the nanoseconds in the index entry when
built with `GIT_USE_NSEC`.  This prevents us from believing that
the working directory is always dirty when the index was originally
written with a git client that uinderstands nsecs (like git 2.x).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When examining the working directory and determining whether it's
up-to-date, only consider the nanoseconds in the index entry when
built with `GIT_USE_NSEC`.  This prevents us from believing that
the working directory is always dirty when the index was originally
written with a git client that uinderstands nsecs (like git 2.x).
</pre>
</div>
</content>
</entry>
<entry>
<title>index: keep a hash table as well as a vector of entries</title>
<updated>2015-08-14T19:10:12+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2015-08-14T19:10:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=af1d5239a16976bd1b8d0a9358497f043bdfed14'/>
<id>af1d5239a16976bd1b8d0a9358497f043bdfed14</id>
<content type='text'>
The hash table allows quick lookup of specific paths, while we use the
vector for enumeration.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The hash table allows quick lookup of specific paths, while we use the
vector for enumeration.
</pre>
</div>
</content>
</entry>
<entry>
<title>index: make relative comparison use the checksum as well</title>
<updated>2015-06-20T14:17:28+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2015-06-20T14:17:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=624c949f01ca553fdd0b42fbac439e822c1bdd5f'/>
<id>624c949f01ca553fdd0b42fbac439e822c1bdd5f</id>
<content type='text'>
This is used by the submodule in order to figure out if the index has
changed since it last read it. Using a timestamp is racy, so let's make
it use the checksum, just like we now do for reloading the index itself.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is used by the submodule in order to figure out if the index has
changed since it last read it. Using a timestamp is racy, so let's make
it use the checksum, just like we now do for reloading the index itself.
</pre>
</div>
</content>
</entry>
<entry>
<title>index: use the checksum to check whether it's been modified</title>
<updated>2015-06-19T20:05:08+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2015-06-19T20:05:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=5e947c91d49aacc8abb5b3f018737c72c52486a9'/>
<id>5e947c91d49aacc8abb5b3f018737c72c52486a9</id>
<content type='text'>
We currently use a timetamp to check whether an index file has been
modified since we last read it, but this is racy. If two updates happen
in the same second and we read after the first one, we won't detect the
second one.

Instead read the SHA-1 checksum of the file, which are its last 20 bytes which
gives us a sure-fire way to detect whether the file has changed since we
last read it.

As we're now keeping track of it, expose an accessor to this data.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We currently use a timetamp to check whether an index file has been
modified since we last read it, but this is racy. If two updates happen
in the same second and we read after the first one, we won't detect the
second one.

Instead read the SHA-1 checksum of the file, which are its last 20 bytes which
gives us a sure-fire way to detect whether the file has changed since we
last read it.

As we're now keeping track of it, expose an accessor to this data.
</pre>
</div>
</content>
</entry>
<entry>
<title>index: introduce git_index_read_index</title>
<updated>2015-05-11T18:12:05+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2015-03-18T04:25:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=35d3976151fca0028523320a994df314241e5851'/>
<id>35d3976151fca0028523320a994df314241e5851</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>indexwriter: an indexwriter for repo operations</title>
<updated>2015-02-14T14:25:36+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2015-02-04T03:31:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=41fae48df21c7d1140da539cb61fa3fd0598a3e7'/>
<id>41fae48df21c7d1140da539cb61fa3fd0598a3e7</id>
<content type='text'>
Provide git_indexwriter_init_for_operation for the common locking
pattern in merge, rebase, revert and cherry-pick.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Provide git_indexwriter_init_for_operation for the common locking
pattern in merge, rebase, revert and cherry-pick.
</pre>
</div>
</content>
</entry>
<entry>
<title>git_indexwriter: lock then write the index</title>
<updated>2015-02-14T14:25:35+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2015-01-18T02:49:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=55798fd1536f055fc23a760c41d679fc60cd2ead'/>
<id>55798fd1536f055fc23a760c41d679fc60cd2ead</id>
<content type='text'>
Introduce `git_indexwriter`, to allow us to lock the index while
performing additional operations, then complete the write (or abort,
unlocking the index).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Introduce `git_indexwriter`, to allow us to lock the index while
performing additional operations, then complete the write (or abort,
unlocking the index).
</pre>
</div>
</content>
</entry>
</feed>
