<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/include/git2, branch ethomson/remove_sys_remote_h</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>Remove unused 'sys/remote.h' header</title>
<updated>2017-07-30T23:38:28+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2017-07-30T23:38:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=37841317377aee4ce08ce3787d88dd24f3d7b982'/>
<id>37841317377aee4ce08ce3787d88dd24f3d7b982</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #4272 from pks-t/pks/patch-id</title>
<updated>2017-07-19T20:28:32+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2017-07-19T20:28:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=a94a54021c118df5d0cf526c0ace4bd96a442f39'/>
<id>a94a54021c118df5d0cf526c0ace4bd96a442f39</id>
<content type='text'>
Patch ID calculation</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Patch ID calculation</pre>
</div>
</content>
</entry>
<entry>
<title>git_reset_*: pass parameters as const pointers</title>
<updated>2017-06-30T08:31:04+00:00</updated>
<author>
<name>Andrey Davydov</name>
<email>andrey.a.davydov@gmail.com</email>
</author>
<published>2017-06-30T08:21:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=d4e03be61317bc67c621283902c8428c28aecc81'/>
<id>d4e03be61317bc67c621283902c8428c28aecc81</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>diff: implement function to calculate patch ID</title>
<updated>2017-06-26T13:39:26+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2017-06-16T11:34:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=89a3482829c77590b3cc4fe95a33b93eebaecff5'/>
<id>89a3482829c77590b3cc4fe95a33b93eebaecff5</id>
<content type='text'>
The upstream git project provides the ability to calculate a so-called
patch ID. Quoting from git-patch-id(1):

    A "patch ID" is nothing but a sum of SHA-1 of the file diffs
    associated with a patch, with whitespace and line numbers ignored."

Patch IDs can be used to identify two patches which are probably the
same thing, e.g. when a patch has been cherry-picked to another branch.

This commit implements a new function `git_diff_patchid`, which gets a
patch and derives an OID from the diff. Note the different terminology
here: a patch in libgit2 are the differences in a single file and a diff
can contain multiple patches for different files. The implementation
matches the upstream implementation and should derive the same OID for
the same diff. In fact, some code has been directly derived from the
upstream implementation.

The upstream implementation has two different modes to calculate patch
IDs, which is the stable and unstable mode. The old way of calculating
the patch IDs was unstable in a sense that a different ordering the
diffs was leading to different results. This oversight was fixed in git
1.9, but as git tries hard to never break existing workflows, the old
and unstable way is still default. The newer and stable way does not
care for ordering of the diff hunks, and in fact it is the mode that
should probably be used today. So right now, we only implement the
stable way of generating the patch ID.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The upstream git project provides the ability to calculate a so-called
patch ID. Quoting from git-patch-id(1):

    A "patch ID" is nothing but a sum of SHA-1 of the file diffs
    associated with a patch, with whitespace and line numbers ignored."

Patch IDs can be used to identify two patches which are probably the
same thing, e.g. when a patch has been cherry-picked to another branch.

This commit implements a new function `git_diff_patchid`, which gets a
patch and derives an OID from the diff. Note the different terminology
here: a patch in libgit2 are the differences in a single file and a diff
can contain multiple patches for different files. The implementation
matches the upstream implementation and should derive the same OID for
the same diff. In fact, some code has been directly derived from the
upstream implementation.

The upstream implementation has two different modes to calculate patch
IDs, which is the stable and unstable mode. The old way of calculating
the patch IDs was unstable in a sense that a different ordering the
diffs was leading to different results. This oversight was fixed in git
1.9, but as git tries hard to never break existing workflows, the old
and unstable way is still default. The newer and stable way does not
care for ordering of the diff hunks, and in fact it is the mode that
should probably be used today. So right now, we only implement the
stable way of generating the patch ID.
</pre>
</div>
</content>
</entry>
<entry>
<title>Adding git_filter_init for initializing `git_filter` struct + unit test </title>
<updated>2017-06-13T18:05:40+00:00</updated>
<author>
<name>Mohseen Mukaddam</name>
<email>mohseenmukaddam6@gmail.com</email>
</author>
<published>2017-06-13T18:05:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=a78441bc467f964261f24b2a1d011cc84fc96708'/>
<id>a78441bc467f964261f24b2a1d011cc84fc96708</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>adding GIT_FILTER_VERSION to GIT_FILTER_INIT as part of convention</title>
<updated>2017-06-13T17:59:25+00:00</updated>
<author>
<name>Mohseen Mukaddam</name>
<email>mohseenmukaddam6@gmail.com</email>
</author>
<published>2017-06-12T20:40:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=7f7dabdaac2b1f4b4a98cdd882a37017cedd830c'/>
<id>7f7dabdaac2b1f4b4a98cdd882a37017cedd830c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>repository_item_path: return ENOTFOUND when appropriate</title>
<updated>2017-06-12T15:51:04+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2017-06-12T11:01:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=9d49a43c718d0749231ac54adf4b72775cc40354'/>
<id>9d49a43c718d0749231ac54adf4b72775cc40354</id>
<content type='text'>
Disambiguate error values: return `GIT_ENOTFOUND` when the item cannot
exist in the repository (perhaps because the repository is inmemory or
otherwise not backed by a filesystem), return `-1` when there is a hard
failure.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Disambiguate error values: return `GIT_ENOTFOUND` when the item cannot
exist in the repository (perhaps because the repository is inmemory or
otherwise not backed by a filesystem), return `-1` when there is a hard
failure.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update version number to v0.26</title>
<updated>2017-06-11T11:23:34+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2017-06-11T11:23:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=2a3cc403bd5c331b1601e01d54e3f04ace52a07e'/>
<id>2a3cc403bd5c331b1601e01d54e3f04ace52a07e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</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 branch 'pr/4228'</title>
<updated>2017-06-04T21:46:07+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2017-06-04T21:46:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=dd0aa811dd329f5040c70f7aac514b3757eb2453'/>
<id>dd0aa811dd329f5040c70f7aac514b3757eb2453</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
