<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/tests-clar/diff/diff_helpers.c, branch ethomson/https_proxy</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>Rename tests-clar to tests</title>
<updated>2013-11-14T22:05:52+00:00</updated>
<author>
<name>Ben Straub</name>
<email>bs@github.com</email>
</author>
<published>2013-11-14T22:05:52+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=1782038144ef3413831801bb9c2f3038a84ac6f4'/>
<id>1782038144ef3413831801bb9c2f3038a84ac6f4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make diff and status perform soft index reload</title>
<updated>2013-11-01T17:20:51+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2013-10-31T21:36:52+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=4bf630b6baf342fa929a8f7e4e6643197b74216f'/>
<id>4bf630b6baf342fa929a8f7e4e6643197b74216f</id>
<content type='text'>
This changes `git_index_read` to have two modes - a hard index
reload that always resets the index to match the on-disk data
(which was the old behavior) and a soft index reload that uses
the timestamp / file size information and only replaces the index
data if the file on disk has been modified.

This then updates the git_status code to do a soft reload unless
the new GIT_STATUS_OPT_NO_REFRESH flag is passed in.

This also changes the behavior of the git_diff functions that use
the index so that when an index is not explicitly passed in (i.e.
when the functions call git_repository_index for you), they will
also do a soft reload for you.

This intentionally breaks the file signature of git_index_read
because there has been some confusion about the behavior previously
and it seems like all existing uses of the API should probably be
examined to select the desired behavior.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This changes `git_index_read` to have two modes - a hard index
reload that always resets the index to match the on-disk data
(which was the old behavior) and a soft index reload that uses
the timestamp / file size information and only replaces the index
data if the file on disk has been modified.

This then updates the git_status code to do a soft reload unless
the new GIT_STATUS_OPT_NO_REFRESH flag is passed in.

This also changes the behavior of the git_diff functions that use
the index so that when an index is not explicitly passed in (i.e.
when the functions call git_repository_index for you), they will
also do a soft reload for you.

This intentionally breaks the file signature of git_index_read
because there has been some confusion about the behavior previously
and it seems like all existing uses of the API should probably be
examined to select the desired behavior.
</pre>
</div>
</content>
</entry>
<entry>
<title>Create git_diff_line and extend git_diff_hunk</title>
<updated>2013-10-21T20:42:42+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2013-10-21T20:42:42+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=3b5f795446601868d52d09ebac70ae3b7aee157a'/>
<id>3b5f795446601868d52d09ebac70ae3b7aee157a</id>
<content type='text'>
Instead of having functions with so very many parameters to pass
hunk and line data, this takes the existing git_diff_hunk struct
and extends it with more hunk data, plus adds a git_diff_line.
Those structs are used to pass back hunk and line data instead of
the old APIs that took tons of parameters.

Some work that was previously only being done for git_diff_patch
creation (scanning the diff content for exact line counts) is now
done for all callbacks, but the performance difference should not
be noticable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of having functions with so very many parameters to pass
hunk and line data, this takes the existing git_diff_hunk struct
and extends it with more hunk data, plus adds a git_diff_line.
Those structs are used to pass back hunk and line data instead of
the old APIs that took tons of parameters.

Some work that was previously only being done for git_diff_patch
creation (scanning the diff content for exact line counts) is now
done for all callbacks, but the performance difference should not
be noticable.
</pre>
</div>
</content>
</entry>
<entry>
<title>Diff API cleanup</title>
<updated>2013-10-15T22:10:07+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2013-10-15T22:10:07+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=10672e3e455eba2d4ca983070ed427caeeb24a6f'/>
<id>10672e3e455eba2d4ca983070ed427caeeb24a6f</id>
<content type='text'>
This lays groundwork for separating formatting options from diff
creation options.  This groups the formatting flags separately
from the diff list creation flags and reorders the options.  This
also tweaks some APIs to further separate code that uses patches
from code that just looks at git_diffs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This lays groundwork for separating formatting options from diff
creation options.  This groups the formatting flags separately
from the diff list creation flags and reorders the options.  This
also tweaks some APIs to further separate code that uses patches
from code that just looks at git_diffs.
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename diff objects and split patch.h</title>
<updated>2013-10-11T21:51:54+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2013-10-11T21:51:54+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=3ff1d123736e5686fb9ec16e65828d5b8ffa2b30'/>
<id>3ff1d123736e5686fb9ec16e65828d5b8ffa2b30</id>
<content type='text'>
This makes no functional change to diff but renames a couple of
the objects and splits the new git_patch (formerly git_diff_patch)
into a new header file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes no functional change to diff but renames a couple of
the objects and splits the new git_patch (formerly git_diff_patch)
into a new header file.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add git_repository_reset_filesystem and fix tests</title>
<updated>2013-10-04T23:32:16+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2013-10-04T23:32:16+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=5173ea921d4ccbbe7d61ddce9a0920c2e1c82035'/>
<id>5173ea921d4ccbbe7d61ddce9a0920c2e1c82035</id>
<content type='text'>
When a repository is transferred from one file system to another,
many of the config settings that represent the properties of the
file system may be wrong.  This adds a new public API that will
refresh the config settings of the repository to account for the
change of file system.  This doesn't do a full "reinitialize" and
operates on a existing git_repository object refreshing the config
when done.

This commit then makes use of the new API in clar as each test
repository is set up.

This commit also has a number of other clar test fixes where we
were making assumptions about the type of filesystem, either based
on outdated config data or based on the OS instead of the FS.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When a repository is transferred from one file system to another,
many of the config settings that represent the properties of the
file system may be wrong.  This adds a new public API that will
refresh the config settings of the repository to account for the
change of file system.  This doesn't do a full "reinitialize" and
operates on a existing git_repository object refreshing the config
when done.

This commit then makes use of the new API in clar as each test
repository is set up.

This commit also has a number of other clar test fixes where we
were making assumptions about the type of filesystem, either based
on outdated config data or based on the OS instead of the FS.
</pre>
</div>
</content>
</entry>
<entry>
<title>Diff hunk context off by one on long lines</title>
<updated>2013-07-05T23:59:38+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2013-07-05T23:59:38+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=a5f9b5f8d8c2dbcd1bec92065e5df7bae76d3c7c'/>
<id>a5f9b5f8d8c2dbcd1bec92065e5df7bae76d3c7c</id>
<content type='text'>
The diff hunk context string that is returned to xdiff need not
be NUL terminated because the xdiff code just copies the number of
bytes that you report directly into the output.  There was an off
by one in the diff driver code when the header context was longer
than the output buffer size, the output buffer length included
the NUL byte which was copied into the hunk header.

Fixes #1710
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The diff hunk context string that is returned to xdiff need not
be NUL terminated because the xdiff code just copies the number of
bytes that you report directly into the output.  There was an off
by one in the diff driver code when the header context was longer
than the output buffer size, the output buffer length included
the NUL byte which was copied into the hunk header.

Fixes #1710
</pre>
</div>
</content>
</entry>
<entry>
<title>More diff rename tests; better split swap handling</title>
<updated>2013-05-23T22:06:07+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2013-05-23T22:06:07+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=67db583dabf6e154037302a24b7f79028f403454'/>
<id>67db583dabf6e154037302a24b7f79028f403454</id>
<content type='text'>
This adds a couple more tests of different rename scenarios.

Also, this fixes a problem with the case where you have two
"split" deltas and the left half of one matches the right half of
the other.  That case was already being handled, but in the wrong
order in a way that could result in bad output.  Also, if the swap
also happened to put the other two halves into the correct place
(i.e. two files exchanged places with each other), then the second
delta was left with the SPLIT flag set when it really should be
cleared.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds a couple more tests of different rename scenarios.

Also, this fixes a problem with the case where you have two
"split" deltas and the left half of one matches the right half of
the other.  That case was already being handled, but in the wrong
order in a way that could result in bad output.  Also, if the swap
also happened to put the other two halves into the correct place
(i.e. two files exchanged places with each other), then the second
delta was left with the SPLIT flag set when it really should be
cleared.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add GIT_DIFF_LINE_CONTEXT_EOFNL</title>
<updated>2013-05-07T11:32:17+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2013-05-07T11:32:17+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=e35e2684f693f28afb7a8f28028b4cb8bdd19f49'/>
<id>e35e2684f693f28afb7a8f28028b4cb8bdd19f49</id>
<content type='text'>
This adds a new line origin constant for the special line that
is used when both files end without a newline.

In the course of writing the tests for this, I was having problems
with modifying a file but not having diff notice because it was
the same size and modified less than one second from the start of
the test, so I decided to start working on nanosecond timestamp
support.  This commit doesn't contain the nanosecond support, but
it contains the reorganization of maybe_modified and the hooks so
that if the nanosecond data were being read by stat() (or rather
being copied by git_index_entry__init_from_stat), then the nsec
would be taken into account.

This new stuff could probably use some more tests, although there
is some amount of it here.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds a new line origin constant for the special line that
is used when both files end without a newline.

In the course of writing the tests for this, I was having problems
with modifying a file but not having diff notice because it was
the same size and modified less than one second from the start of
the test, so I decided to start working on nanosecond timestamp
support.  This commit doesn't contain the nanosecond support, but
it contains the reorganization of maybe_modified and the hooks so
that if the nanosecond data were being read by stat() (or rather
being copied by git_index_entry__init_from_stat), then the nsec
would be taken into account.

This new stuff could probably use some more tests, although there
is some amount of it here.
</pre>
</div>
</content>
</entry>
<entry>
<title>More tests for diff untracked directories</title>
<updated>2013-04-30T11:25:56+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2013-04-29T09:57:01+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=a66c4bc846cb59512c1aa164211f3f912d9bc425'/>
<id>a66c4bc846cb59512c1aa164211f3f912d9bc425</id>
<content type='text'>
This includes more tests for various scenarios when diff includes
an untracked directory in the workdir with contents either ignored
or not.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This includes more tests for various scenarios when diff includes
an untracked directory in the workdir with contents either ignored
or not.
</pre>
</div>
</content>
</entry>
</feed>
