| Age | Commit message (Collapse) | Author |
|
This commit introduces libgit2 v1.2.0 to git2go, which brings a large
number of [bugfixes and
features](https://github.com/libgit2/libgit2/releases/tag/v1.2.0).
This also marks the start of the v32 release.
|
|
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 makes sure that pointer handles are correctly cleaned up
during tests.
|
|
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 fixes a leak that was apparently introduced in commit 55a109614151.
|
|
|
|
|
|
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.
|
|
|
|
|
|
As with the other commits, this clears up the clutter in naming and
around the Repository's API.
|
|
There's been some changes to the checkout strategy, especially the
SAFE_CREATE mode, which is now the RECREATE_MISSING flag, though that
shouldn't be necessary to use in the general case.
The largest changes come from the removal of the signture from
ref-modifying functions/methods and the removal of the reflog string in
all but those directly related to moving references.
|
|
|
|
|
|
|
|
While Go will assign the correct type to a const block when it
auto-creates the values, assigning makes the const be typeless and will
only gain it in each particular use.
Make each constant in the blocks have an assigned type.
|
|
Otherwise, the garbage collector might decide it's a good idea to throw
away the repository instance while the C object still has a pointer to
it. Hilarity ensues.
|
|
This reduces the need to carry around a pointer to the repository as
well as the objects.
|
|
Peel a reference to a particular type of object, returning an Object,
which you then perform a type assertion on.
|
|
|
|
|
|
|
|
All iterators use Next(). Remove interfaces.
|
|
|
|
|
|
|
|
|
|
Add a few reference utility functions
|
|
Allow for a default in reflog messages
|
|
|
|
|
|
We don't have a way to represent a NULL string, so if the user passes an
empty string, let's pass NULL down so we tell libgit2 to use the default.
|
|
|
|
Add Is$Type methods to Reference.
|
|
On top: fix git_buf handling and rename signature
This fixes #57, #54.
Conflicts:
git.go
reference.go
repository.go
submodule.go
|
|
This patch adds the following methods to Reference:
IsBranch() bool
IsRemote() bool
IsTag() bool
which correspond to the `git_reference_is_$type` functions in libgit2.
|
|
|
|
The library stores error information in thread-local storage, which
means we need to make sure that the Go runtime doesn't switch OS
threads between the time we call a function and th time we attempt to
retrieve the error information.
|
|
This is only needed once per package. Having it on every file makes the
build system ask about it n times, which is silly.
|
|
reference: get references out of the iterator
|
|
This allows us to restrict which constants the compiler will allow
through, and makes the sorting in the documentation better.
|
|
Make the names look more like what you'd expect from Go.
|
|
Allow getting references out of the iterator instead of just names.
|
|
The Library's iterators now can return either the reference or the
reference's name. As the name is what we're set up for, rename the
functions appropriately so we compile against altest development.
|
|
Wrap the reference iterators, and provide a Iter() function to get
them through a channel.
|
|
|