* rebase: Fix missing initialization of the repo pointer
While the `Rebase` structure has a pointer to the repository the rebase
is creatde in, this pointer isn't ever initialized. Fix this.
* rebase: Add wrapper for `git_rebase_inmemory_index()`
Add a new wrapper for `git_rebase_inmemory_index()`, which can be used
to retrieve the index for an in-memory rebase.
Co-authored-by: Patrick Steinhardt <psteinhardt@gitlab.com>
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
We were incorectly reporting `C.GIT_REBASE_NO_OPERATION` as an error code when
it is none. We should instead return it as the value. The compiler doesn't seem
to actually look at the sizes so instead we must recreate the value ourselves
with `^uint(0)`.
The error return is kept for API compatibility but should go away eventually.