<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/examples, branch ethomson/gitstr</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>str: introduce `git_str` for internal, `git_buf` is external</title>
<updated>2021-10-17T13:49:01+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2021-09-07T21:53:49+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=f0e693b18afbe1de37d7da5b5a8967b6c87d8e53'/>
<id>f0e693b18afbe1de37d7da5b5a8967b6c87d8e53</id>
<content type='text'>
libgit2 has two distinct requirements that were previously solved by
`git_buf`.  We require:

1. A general purpose string class that provides a number of utility APIs
   for manipulating data (eg, concatenating, truncating, etc).
2. A structure that we can use to return strings to callers that they
   can take ownership of.

By using a single class (`git_buf`) for both of these purposes, we have
confused the API to the point that refactorings are difficult and
reasoning about correctness is also difficult.

Move the utility class `git_buf` to be called `git_str`: this represents
its general purpose, as an internal string buffer class.  The name also
is an homage to Junio Hamano ("gitstr").

The public API remains `git_buf`, and has a much smaller footprint.  It
is generally only used as an "out" param with strict requirements that
follow the documentation.  (Exceptions exist for some legacy APIs to
avoid breaking callers unnecessarily.)

Utility functions exist to convert a user-specified `git_buf` to a
`git_str` so that we can call internal functions, then converting it
back again.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
libgit2 has two distinct requirements that were previously solved by
`git_buf`.  We require:

1. A general purpose string class that provides a number of utility APIs
   for manipulating data (eg, concatenating, truncating, etc).
2. A structure that we can use to return strings to callers that they
   can take ownership of.

By using a single class (`git_buf`) for both of these purposes, we have
confused the API to the point that refactorings are difficult and
reasoning about correctness is also difficult.

Move the utility class `git_buf` to be called `git_str`: this represents
its general purpose, as an internal string buffer class.  The name also
is an homage to Junio Hamano ("gitstr").

The public API remains `git_buf`, and has a much smaller footprint.  It
is generally only used as an "out" param with strict requirements that
follow the documentation.  (Exceptions exist for some legacy APIs to
avoid breaking callers unnecessarily.)

Utility functions exist to convert a user-specified `git_buf` to a
`git_str` so that we can call internal functions, then converting it
back again.
</pre>
</div>
</content>
</entry>
<entry>
<title>examples: Free the git_config and git_config_entry after use</title>
<updated>2021-09-24T18:14:59+00:00</updated>
<author>
<name>Paymon MARANDI</name>
<email>darwinskernel@gmail.com</email>
</author>
<published>2021-09-23T15:59:52+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=581cfbda85939a5336fb39f6068b2c19ddd59f33'/>
<id>581cfbda85939a5336fb39f6068b2c19ddd59f33</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix typo in general.c</title>
<updated>2021-07-28T05:58:32+00:00</updated>
<author>
<name>Crayon</name>
<email>crayon1@rocketmail.com</email>
</author>
<published>2021-07-28T05:58:32+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=59af78a48fac0966e6e26f1ea6323844c69aba48'/>
<id>59af78a48fac0966e6e26f1ea6323844c69aba48</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove duplicate line, in example code</title>
<updated>2021-03-17T09:48:17+00:00</updated>
<author>
<name>punkymaniac</name>
<email>punkymaniac@protonmail.ch</email>
</author>
<published>2021-03-17T09:48:17+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=8f52b0c55316f10cdeb8aaa5a69b36d30d44e834'/>
<id>8f52b0c55316f10cdeb8aaa5a69b36d30d44e834</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix some typos</title>
<updated>2021-02-15T21:01:25+00:00</updated>
<author>
<name>Aaron Franke</name>
<email>arnfranke@yahoo.com</email>
</author>
<published>2021-02-15T20:47:28+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=7efddeb7376b3e10379ea662c9a235ae079119d7'/>
<id>7efddeb7376b3e10379ea662c9a235ae079119d7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>revspec: rename git_revparse_mode_t to git_revspec_t</title>
<updated>2021-01-31T16:36:31+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2021-01-31T00:36:54+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=4732e03056b1b88fdeb3276d96dfd9400d75233a'/>
<id>4732e03056b1b88fdeb3276d96dfd9400d75233a</id>
<content type='text'>
The information about the type of a revision spec is not information
about the parser.  Name it accordingly, so that `git_revparse_mode_t`
is now `git_revspec_t`.  Deprecate the old name.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The information about the type of a revision spec is not information
about the parser.  Name it accordingly, so that `git_revparse_mode_t`
is now `git_revspec_t`.  Deprecate the old name.
</pre>
</div>
</content>
</entry>
<entry>
<title>examples: log: fix documentation generation</title>
<updated>2020-06-08T13:43:34+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2020-06-08T13:28:20+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=939cb73fdf19e95706c086448dbe72dc50360237'/>
<id>939cb73fdf19e95706c086448dbe72dc50360237</id>
<content type='text'>
Docurium seems to be confused by our use of `/** comment */;` use in the
log example. Let's just switch it around to help Docurium get this
right.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Docurium seems to be confused by our use of `/** comment */;` use in the
log example. Let's just switch it around to help Docurium get this
right.
</pre>
</div>
</content>
</entry>
<entry>
<title>strarray: we should `dispose` instead of `free`</title>
<updated>2020-06-01T21:50:28+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2020-05-29T12:13:19+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=51eff5a58b95f91cbdd8e5caa750964c9f08e895'/>
<id>51eff5a58b95f91cbdd8e5caa750964c9f08e895</id>
<content type='text'>
We _dispose_ the contents of objects; we _free_ objects (and their
contents).  Update `git_strarray_free` to be `git_strarray_dispose`.
`git_strarray_free` remains as a deprecated proxy function.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We _dispose_ the contents of objects; we _free_ objects (and their
contents).  Update `git_strarray_free` to be `git_strarray_dispose`.
`git_strarray_free` remains as a deprecated proxy function.
</pre>
</div>
</content>
</entry>
<entry>
<title>examples: additions and fixes</title>
<updated>2020-04-02T16:39:37+00:00</updated>
<author>
<name>Peter Salomonsen</name>
<email>pjsalomonsen@gmail.com</email>
</author>
<published>2020-02-24T17:30:16+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=dc2beb7e2db7bea94a5bd5f8c6e10467f94ff3cc'/>
<id>dc2beb7e2db7bea94a5bd5f8c6e10467f94ff3cc</id>
<content type='text'>
add example for git commit
fix example for git add
add example for git push
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
add example for git commit
fix example for git add
add example for git push
</pre>
</div>
</content>
</entry>
<entry>
<title>credential: change git_cred to git_credential</title>
<updated>2020-01-26T18:39:41+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2020-01-18T13:51:40+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=3f54ba8b61869f42b2bbd1a60091a0be640bc8fc'/>
<id>3f54ba8b61869f42b2bbd1a60091a0be640bc8fc</id>
<content type='text'>
We avoid abbreviations where possible; rename git_cred to
git_credential.

In addition, we have standardized on a trailing `_t` for enum types,
instead of using "type" in the name.  So `git_credtype_t` has become
`git_credential_t` and its members have become `GIT_CREDENTIAL` instead
of `GIT_CREDTYPE`.

Finally, the source and header files have been renamed to `credential`
instead of `cred`.

Keep previous name and values as deprecated, and include the new header
files from the previous ones.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We avoid abbreviations where possible; rename git_cred to
git_credential.

In addition, we have standardized on a trailing `_t` for enum types,
instead of using "type" in the name.  So `git_credtype_t` has become
`git_credential_t` and its members have become `GIT_CREDENTIAL` instead
of `GIT_CREDTYPE`.

Finally, the source and header files have been renamed to `credential`
instead of `cred`.

Keep previous name and values as deprecated, and include the new header
files from the previous ones.
</pre>
</div>
</content>
</entry>
</feed>
