<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/src/diff.c, branch ethomson/racy-diff</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>Introduce `GIT_DIFF_FLAG_EXISTS`</title>
<updated>2015-05-28T13:47:47+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2015-05-19T22:26:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=10549a2df166cd3b951c65ab89c33f7ef21c6b7a'/>
<id>10549a2df166cd3b951c65ab89c33f7ef21c6b7a</id>
<content type='text'>
Mark the `old_file` and `new_file` sides of a delta with a new bit,
`GIT_DIFF_FLAG_EXISTS`, that introduces that a particular side of
the delta exists in the diff.

This is useful for indicating whether a working directory item exists
or not, in the presence of a conflict.  Diff users may have previously
used DELETED to determine this information.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mark the `old_file` and `new_file` sides of a delta with a new bit,
`GIT_DIFF_FLAG_EXISTS`, that introduces that a particular side of
the delta exists in the diff.

This is useful for indicating whether a working directory item exists
or not, in the presence of a conflict.  Diff users may have previously
used DELETED to determine this information.
</pre>
</div>
</content>
</entry>
<entry>
<title>diff: prettify `maybe_modified` a little</title>
<updated>2015-05-28T13:47:35+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2015-05-19T15:31:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=253a05f76b356c624fbb0b81235a30f897b5e24f'/>
<id>253a05f76b356c624fbb0b81235a30f897b5e24f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>introduce `git_index_entry_is_conflict`</title>
<updated>2015-05-28T13:47:31+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2015-05-19T15:23:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=9f545b9d71c7bd316be80e5fe8b47135e9deb97e'/>
<id>9f545b9d71c7bd316be80e5fe8b47135e9deb97e</id>
<content type='text'>
It's not always obvious the mapping between stage level and
conflict-ness.  More importantly, this can lead otherwise sane
people to write constructs like `if (!git_index_entry_stage(entry))`,
which (while technically correct) is unreadable.

Provide a nice method to help avoid such messy thinking.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's not always obvious the mapping between stage level and
conflict-ness.  More importantly, this can lead otherwise sane
people to write constructs like `if (!git_index_entry_stage(entry))`,
which (while technically correct) is unreadable.

Provide a nice method to help avoid such messy thinking.
</pre>
</div>
</content>
</entry>
<entry>
<title>diff conflicts: don't include incorrect ID</title>
<updated>2015-05-28T13:44:18+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2015-05-18T22:15:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=191e97a02b3360820177ed7642116796551ce1f6'/>
<id>191e97a02b3360820177ed7642116796551ce1f6</id>
<content type='text'>
Since a diff entry only concerns a single entry, zero the information
for the index side of a conflict.  (The index entry would otherwise
erroneously include the lowest-stage index entry - generally the
ancestor of a conflict.)

Test that during status, the index side of the conflict is empty.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since a diff entry only concerns a single entry, zero the information
for the index side of a conflict.  (The index entry would otherwise
erroneously include the lowest-stage index entry - generally the
ancestor of a conflict.)

Test that during status, the index side of the conflict is empty.
</pre>
</div>
</content>
</entry>
<entry>
<title>diff: for conflicts w/o workdir, blank nitem side</title>
<updated>2015-05-28T13:44:06+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2015-05-18T19:13:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=7877146fc2b2a25ce1d8c3be5f15186acf292a27'/>
<id>7877146fc2b2a25ce1d8c3be5f15186acf292a27</id>
<content type='text'>
Make sure that we provide a blanked nitem side when the item does not
exist in the working directory.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make sure that we provide a blanked nitem side when the item does not
exist in the working directory.
</pre>
</div>
</content>
</entry>
<entry>
<title>diff/status: introduce conflicts</title>
<updated>2015-05-28T13:44:02+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2015-05-14T18:00:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=7c948014006e86beaced3e77b61cb0a8ddb0958c'/>
<id>7c948014006e86beaced3e77b61cb0a8ddb0958c</id>
<content type='text'>
When diffing against an index, return a new `GIT_DELTA_CONFLICTED`
delta type for items that are conflicted.  For a single file path,
only one delta will be produced (despite the fact that there are
multiple entries in the index).

Index iterators now have the (optional) ability to return conflicts
in the index.  Prior to this change, they would be omitted, and callers
(like diff) would omit conflicted index entries entirely.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When diffing against an index, return a new `GIT_DELTA_CONFLICTED`
delta type for items that are conflicted.  For a single file path,
only one delta will be produced (despite the fact that there are
multiple entries in the index).

Index iterators now have the (optional) ability to return conflicts
in the index.  Prior to this change, they would be omitted, and callers
(like diff) would omit conflicted index entries entirely.
</pre>
</div>
</content>
</entry>
<entry>
<title>diff: wrap the iterator functions</title>
<updated>2015-05-28T13:43:45+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2015-05-13T21:47:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=1b6c26db976596e74ddaf5da8d0f43a63ccee063'/>
<id>1b6c26db976596e74ddaf5da8d0f43a63ccee063</id>
<content type='text'>
Wrap the iterator current / advance functions so that we can extend
them, but also handle GIT_ITEROVER cases in the iterator funcs
instead of the callers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Wrap the iterator current / advance functions so that we can extend
them, but also handle GIT_ITEROVER cases in the iterator funcs
instead of the callers.
</pre>
</div>
</content>
</entry>
<entry>
<title>checkout: break case-changes into delete/add</title>
<updated>2015-05-04T12:18:28+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@microsoft.com</email>
</author>
<published>2015-03-31T20:29:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=4beab1f8bbc29a0788ed7d5c1f6bc21741392565'/>
<id>4beab1f8bbc29a0788ed7d5c1f6bc21741392565</id>
<content type='text'>
When checking out with a case-insensitive working directory, we
want to change the case of items in the working directory to
reflect changes that occured in the checkout target.  Diff now
has an option to break case-changing renames into delete/add.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When checking out with a case-insensitive working directory, we
want to change the case of items in the working directory to
reflect changes that occured in the checkout target.  Diff now
has an option to break case-changing renames into delete/add.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed GIT_DIFF_UPDATE_INDEX not being aware of executable bit changes</title>
<updated>2015-04-15T22:28:03+00:00</updated>
<author>
<name>Pierre-Olivier Latour</name>
<email>pol@mac.com</email>
</author>
<published>2015-04-15T22:28:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=db853748f6ed90766f5878afdb1473fa11d950e3'/>
<id>db853748f6ed90766f5878afdb1473fa11d950e3</id>
<content type='text'>
In the prior implementation, enabling GIT_DIFF_UPDATE_INDEX would overwrite
entries in the index with the ones generated from scanning the working if the
OID was the same.

Because this OID comparison ignores file modes, this means an file in the
workdir with only an exec bit difference with the one in the index would end
up being overwritten, resulting in the exec bit being loss. There might be
other related bugs but the fix of comparing OIDs and file modes should
address them all.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the prior implementation, enabling GIT_DIFF_UPDATE_INDEX would overwrite
entries in the index with the ones generated from scanning the working if the
OID was the same.

Because this OID comparison ignores file modes, this means an file in the
workdir with only an exec bit difference with the one in the index would end
up being overwritten, resulting in the exec bit being loss. There might be
other related bugs but the fix of comparing OIDs and file modes should
address them all.
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed unnecessary condition</title>
<updated>2015-04-15T22:27:59+00:00</updated>
<author>
<name>Pierre-Olivier Latour</name>
<email>pol@mac.com</email>
</author>
<published>2015-04-15T22:27:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=cc93ad16502ea09b1923ca9eb1b291ced646cf38'/>
<id>cc93ad16502ea09b1923ca9eb1b291ced646cf38</id>
<content type='text'>
The variable noid is guaranteed to be zero at this point of the code path.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The variable noid is guaranteed to be zero at this point of the code path.
</pre>
</div>
</content>
</entry>
</feed>
