| Age | Commit message (Collapse) | Author |
|
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.
|
|
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
|
|
This adds IsBinary() func to Blob struct, which simply returns the result of git_blob_is_binary function.
Refs: https://libgit2.org/libgit2/#HEAD/group/blob/git_blob_is_binary
Issue: Add support for git_blob_is_binary #426
Fixes: #426
|
|
|
|
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.
|
|
|
|
|
|
It depends heavily on the expression at the call site an whether it can
figure out whether we're using a slice or not, so provid an incantation
that does this.
|
|
|
|
|
|
|
|
An Object should be about representing a libgit2 object rather than
showing which methods it should support.
Change any return of Object to *Object and provide methods to convert
between this and the particular type.
|
|
|
|
|
|
Go won't let us access the zeroth alement of an empty slice, so we need
to figure out if the length is zero and take special action.
This fixes #106.
|
|
It does not like breaking aliasing rules, so let's keep a casted pointer
for when libgit2 wants that.
|
|
|
|
API cleanup
|
|
This is only needed once per package. Having it on every file makes the
build system ask about it n times, which is silly.
|
|
|
|
|
|
|
|
Provide a manual way of freeing objects, but set finalizers for them
in case the user does not want to worry about memory management, which
would be useful for commits or trees, which sare typically small.
When the objects are freed manually, the finalizer is unset to avoid
double-freeing, mimicking what the go runtime does.
|
|
|