<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/src/object.h, branch ethomson/proxy</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>object: implement function to parse raw data</title>
<updated>2018-06-22T07:50:07+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2017-10-13T11:11:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=ca4db5f4a9e69a0ca7c22eda7656c5625582a2eb'/>
<id>ca4db5f4a9e69a0ca7c22eda7656c5625582a2eb</id>
<content type='text'>
Now that we have implement functions to parse all git objects from raw
data, we can implement a generic function `git_object__from_raw` to
create a structure of type `git_object`. This allows us to parse and
interpret objects from raw data without having to touch the ODB at all,
which is especially useful for object verification prior to accepting
them into the repository.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now that we have implement functions to parse all git objects from raw
data, we can implement a generic function `git_object__from_raw` to
create a structure of type `git_object`. This allows us to parse and
interpret objects from raw data without having to touch the ODB at all,
which is especially useful for object verification prior to accepting
them into the repository.
</pre>
</div>
</content>
</entry>
<entry>
<title>object: introduce git_object_stringn2type</title>
<updated>2017-12-20T16:08:03+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2017-11-30T15:52:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=d1e446550a966a1dbc5d765aa79fe9bc47a1c1a3'/>
<id>d1e446550a966a1dbc5d765aa79fe9bc47a1c1a3</id>
<content type='text'>
Introduce an internal API to get the object type based on a
length-specified (not null terminated) string representation.  This can
be used to compare the (space terminated) object type name in a loose
object.

Reimplement `git_object_string2type` based on this API.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Introduce an internal API to get the object type based on a
length-specified (not null terminated) string representation.  This can
be used to compare the (space terminated) object type name in a loose
object.

Reimplement `git_object_string2type` based on this API.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make sure to always include "common.h" first</title>
<updated>2017-07-03T08:51:48+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2017-06-30T11:39:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=0c7f49dd4316b332f30b4ea72a657bace41e1245'/>
<id>0c7f49dd4316b332f30b4ea72a657bace41e1245</id>
<content type='text'>
Next to including several files, our "common.h" header also declares
various macros which are then used throughout the project. As such, we
have to make sure to always include this file first in all
implementation files. Otherwise, we might encounter problems or even
silent behavioural differences due to macros or defines not being
defined as they should be. So in fact, our header and implementation
files should make sure to always include "common.h" first.

This commit does so by establishing a common include pattern. Header
files inside of "src" will now always include "common.h" as its first
other file, separated by a newline from all the other includes to make
it stand out as special. There are two cases for the implementation
files. If they do have a matching header file, they will always include
this one first, leading to "common.h" being transitively included as
first file. If they do not have a matching header file, they instead
include "common.h" as first file themselves.

This fixes the outlined problems and will become our standard practice
for header and source files inside of the "src/" from now on.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Next to including several files, our "common.h" header also declares
various macros which are then used throughout the project. As such, we
have to make sure to always include this file first in all
implementation files. Otherwise, we might encounter problems or even
silent behavioural differences due to macros or defines not being
defined as they should be. So in fact, our header and implementation
files should make sure to always include "common.h" first.

This commit does so by establishing a common include pattern. Header
files inside of "src" will now always include "common.h" as its first
other file, separated by a newline from all the other includes to make
it stand out as special. There are two cases for the implementation
files. If they do have a matching header file, they will always include
this one first, leading to "common.h" being transitively included as
first file. If they do not have a matching header file, they instead
include "common.h" as first file themselves.

This fixes the outlined problems and will become our standard practice
for header and source files inside of the "src/" from now on.
</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>fsync: call it "synchronous" object writing</title>
<updated>2017-02-28T13:29:01+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2017-02-17T16:42:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=2a5ad7d0f2c28337530855fae250f85123070fcb'/>
<id>2a5ad7d0f2c28337530855fae250f85123070fcb</id>
<content type='text'>
Rename `GIT_OPT_ENABLE_SYNCHRONIZED_OBJECT_CREATION` -&gt;
`GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rename `GIT_OPT_ENABLE_SYNCHRONIZED_OBJECT_CREATION` -&gt;
`GIT_OPT_ENABLE_SYNCHRONOUS_OBJECT_CREATION`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add `ENABLE_SYNCHRONIZED_OBJECT_CREATION` option</title>
<updated>2017-02-28T13:27:49+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-12-13T15:58:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=6d3ad7e09ee4b101e8e68f38783e3e4139bc2691'/>
<id>6d3ad7e09ee4b101e8e68f38783e3e4139bc2691</id>
<content type='text'>
Allow users to enable `SYNCHRONIZED_OBJECT_CREATION` with a setting.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allow users to enable `SYNCHRONIZED_OBJECT_CREATION` with a setting.
</pre>
</div>
</content>
</entry>
<entry>
<title>git_object__is_valid: use `odb_read_header`</title>
<updated>2016-02-28T23:54:39+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-02-28T19:37:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=3ef01e772729f44c2871b590577cc64e4a58a381'/>
<id>3ef01e772729f44c2871b590577cc64e4a58a381</id>
<content type='text'>
This allows lighter weight validation in `git_object__is_valid` that
does not require reading the entire object.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows lighter weight validation in `git_object__is_valid` that
does not require reading the entire object.
</pre>
</div>
</content>
</entry>
<entry>
<title>git_index_add: validate objects in index entries (optionally)</title>
<updated>2016-02-28T23:54:39+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-02-23T23:29:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=6ddf533afca5e25b7c532b4c164ae66e06f9c1c2'/>
<id>6ddf533afca5e25b7c532b4c164ae66e06f9c1c2</id>
<content type='text'>
When `GIT_OPT_ENABLE_STRICT_OBJECT_CREATION` is turned on, validate
the index entries given to `git_index_add`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When `GIT_OPT_ENABLE_STRICT_OBJECT_CREATION` is turned on, validate
the index entries given to `git_index_add`.
</pre>
</div>
</content>
</entry>
<entry>
<title>git_object__is_valid: simple object validity test</title>
<updated>2016-02-28T17:38:39+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-02-23T18:33:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=7565dc6572e94ee10462169dd07ba8afe08388c7'/>
<id>7565dc6572e94ee10462169dd07ba8afe08388c7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>git_libgit2_opts: introduce `GIT_OPT_ENABLE_STRICT_OBJECT_CREATION`</title>
<updated>2016-02-28T17:38:39+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@github.com</email>
</author>
<published>2016-02-23T04:46:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=22a19f5b5795153b4c77c75adfae790c3b919be4'/>
<id>22a19f5b5795153b4c77c75adfae790c3b919be4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
