<feed xmlns='http://www.w3.org/2005/Atom'>
<title>jcarr/git2go/tree.go, branch v0.0.35</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>http://cgit.wit.com/jcarr/git2go/atom?h=v0.0.35</id>
<link rel='self' href='http://cgit.wit.com/jcarr/git2go/atom?h=v0.0.35'/>
<link rel='alternate' type='text/html' href='http://cgit.wit.com/jcarr/git2go/'/>
<updated>2021-09-30T16:24:49Z</updated>
<entry>
<title>Allow skipping an entry expansion in `tree.Walk()` (#838)</title>
<updated>2021-09-30T16:24:49Z</updated>
<author>
<name>lhchavez</name>
<email>lhchavez@lhchavez.com</email>
</author>
<published>2021-09-30T16:24:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.wit.com/jcarr/git2go/commit/?id=9b155184fe1f0f0258730bccd2759ac7ec39be2a'/>
<id>urn:sha1:9b155184fe1f0f0258730bccd2759ac7ec39be2a</id>
<content type='text'>
It is now possible to skip expanding an entry in `tree.Walk()` by
returning `TreeWalkSkip`, in addition to stopping altogether by
returning a non-nil error.

Fixes: #837</content>
</entry>
<entry>
<title>The big Callback type adjustment of 2020</title>
<updated>2021-09-06T01:52:01Z</updated>
<author>
<name>lhchavez</name>
<email>lhchavez@lhchavez.com</email>
</author>
<published>2020-12-02T03:11:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.wit.com/jcarr/git2go/commit/?id=5def02a589a2c1653f4bb515fdec290361a222be'/>
<id>urn:sha1:5def02a589a2c1653f4bb515fdec290361a222be</id>
<content type='text'>
This change makes all callbacks that can fail return an `error`. This
makes things a lot more idiomatic.
</content>
</entry>
<entry>
<title>Make all non-user-creatable structures non-comparable (#802)</title>
<updated>2021-09-05T20:59:36Z</updated>
<author>
<name>lhchavez</name>
<email>lhchavez@lhchavez.com</email>
</author>
<published>2021-09-05T20:59:36Z</published>
<link rel='alternate' type='text/html' href='http://cgit.wit.com/jcarr/git2go/commit/?id=dbe032c347b1a1308a4b880e7c5a06d8dfb4d507'/>
<id>urn:sha1:dbe032c347b1a1308a4b880e7c5a06d8dfb4d507</id>
<content type='text'>
This change makes all non-user-creatable structures non-comparable. This
makes it easier to add changes later that don't introduce breaking
changes from the go compatibility guarantees perspective.

This, of course, implies that this change _is_ a breaking change, but since
these structures are not intended to be created by users (or de-referenced),
it should be okay.</content>
</entry>
<entry>
<title>Refactor all callbacks (#700)</title>
<updated>2020-12-05T21:13:59Z</updated>
<author>
<name>lhchavez</name>
<email>lhchavez@lhchavez.com</email>
</author>
<published>2020-12-05T21:13:59Z</published>
<link rel='alternate' type='text/html' href='http://cgit.wit.com/jcarr/git2go/commit/?id=5d8eaf7e65c404a0d10d3705697dd99369630dda'/>
<id>urn:sha1:5d8eaf7e65c404a0d10d3705697dd99369630dda</id>
<content type='text'>
This change is a preparation for another change that makes all callback
types return a Go error instead of an error code / an integer. That is
going to make make things a lot more idiomatic.

The reason this change is split is threefold:

a) This change is mostly mechanical and should contain no semantic
   changes.
b) This change is backwards-compatible (in the Go API compatibility
   sense of the word), and thus can be backported to all other releases.
c) It makes the other change a bit smaller and more focused on just one
   thing.

Concretely, this change makes all callbacks populate a Go error when
they fail. If the callback is invoked from the same stack as the
function to which it was passed (e.g. for `Tree.Walk`), it will preserve
the error object directly into a struct that also holds the callback
function. Otherwise if the callback is pased to one func and will be
invoked when run from another one (e.g. for `Repository.InitRebase`),
the error string is saved into the libgit2 thread-local storage and then
re-created as a `GitError`.</content>
</entry>
<entry>
<title>Mark some symbols to be deprecated #minor (#698)</title>
<updated>2020-12-05T15:23:44Z</updated>
<author>
<name>lhchavez</name>
<email>lhchavez@lhchavez.com</email>
</author>
<published>2020-12-05T15:23:44Z</published>
<link rel='alternate' type='text/html' href='http://cgit.wit.com/jcarr/git2go/commit/?id=137c05e802d5e11a5ab54809bc8be8f61ccece21'/>
<id>urn:sha1:137c05e802d5e11a5ab54809bc8be8f61ccece21</id>
<content type='text'>
This change introduces the file deprecated.go, which contains any
constants, functions, and types that are slated to be deprecated in the
next major release.

These symbols are deprecated because they refer to old spellings in
pre-1.0 libgit2. This also makes the build be done with the
`-DDEPRECATE_HARD` flag to avoid regressions.

This, together with
[gorelease](https://godoc.org/golang.org/x/exp/cmd/gorelease)[1] should
make releases safer going forward.

1: More information about how that works at
   https://go.googlesource.com/exp/+/refs/heads/master/apidiff/README.md</content>
</entry>
<entry>
<title>Fixes #513 - Segfault during tree walk</title>
<updated>2019-11-17T16:21:57Z</updated>
<author>
<name>Dinesh Bolkensteyn</name>
<email>dinesh@dinsoft.net</email>
</author>
<published>2019-11-17T08:19:36Z</published>
<link rel='alternate' type='text/html' href='http://cgit.wit.com/jcarr/git2go/commit/?id=bf289c8b3645158a552161825326347e346f314a'/>
<id>urn:sha1:bf289c8b3645158a552161825326347e346f314a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tree: keep tree receiver alive as long as dependent entry is used</title>
<updated>2018-02-09T10:17:10Z</updated>
<author>
<name>Steffen Prohaska</name>
<email>prohaska@zib.de</email>
</author>
<published>2018-02-09T07:52:16Z</published>
<link rel='alternate' type='text/html' href='http://cgit.wit.com/jcarr/git2go/commit/?id=fcb86e6f8ec787d7ae1fd8978445da2d33ecef72'/>
<id>urn:sha1:fcb86e6f8ec787d7ae1fd8978445da2d33ecef72</id>
<content type='text'>
Signed-off-by: Steffen Prohaska &lt;prohaska@zib.de&gt;
</content>
</entry>
<entry>
<title>Add Objecer interface</title>
<updated>2017-07-08T20:53:50Z</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>carlosmn@github.com</email>
</author>
<published>2017-07-08T20:53:50Z</published>
<link rel='alternate' type='text/html' href='http://cgit.wit.com/jcarr/git2go/commit/?id=7f685a6ee64db446a8b2d05f98796a1bf63984d9'/>
<id>urn:sha1:7f685a6ee64db446a8b2d05f98796a1bf63984d9</id>
<content type='text'>
We do want to be able to accept generic objects in functions. Add this interface
so we can accept that instead of specific object types.
</content>
</entry>
<entry>
<title>Third round of keep-alive aditions</title>
<updated>2017-07-08T14:07:51Z</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>carlosmn@github.com</email>
</author>
<published>2017-07-08T14:07:51Z</published>
<link rel='alternate' type='text/html' href='http://cgit.wit.com/jcarr/git2go/commit/?id=55a1096141519a1f380d0702671cfe9bf90ec435'/>
<id>urn:sha1:55a1096141519a1f380d0702671cfe9bf90ec435</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge pull request #365 from AaronO/fix/memleak-tree-entrybyname</title>
<updated>2017-04-13T19:16:30Z</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>carlosmn@github.com</email>
</author>
<published>2017-04-13T19:16:30Z</published>
<link rel='alternate' type='text/html' href='http://cgit.wit.com/jcarr/git2go/commit/?id=89fc9e776178eeef7ec9b1dba0bfca4580fabc7e'/>
<id>urn:sha1:89fc9e776178eeef7ec9b1dba0bfca4580fabc7e</id>
<content type='text'>
Fix memleaks in Tree.EntryBy(Name/Path/Index), fixes #313</content>
</entry>
</feed>
