Commit Graph

24 Commits

Author SHA1 Message Date
Patrick Steinhardt e7d1b2b69f
rebase: Add wrapper for `git_rebase_inmemory_index()` (#900)
* 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>
2022-02-24 05:27:26 -08:00
lhchavez 018647fd48 libgit2 v1.2.0 #major
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.
2021-09-05 18:52:01 -07:00
lhchavez b78bde3d74 Make all Options objects consistent
This change makes all Options objects have child Option fields as values
(instead of pointers) to mirror the libgit2 interface. It also names
them Options instead of Opts to match the current libgit2 nomenclature
and removes the Version fields.
2021-09-05 18:52:01 -07:00
lhchavez dbe032c347
Make all non-user-creatable structures non-comparable (#802)
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.
2021-09-05 13:59:36 -07:00
lhchavez 10c67474a8
More callback refactoring (#713)
This change:

* Gets rid of the `.toC()` functions for Options objects, since they
  were redundant with the `populateXxxOptions()`.
* Adds support for `errorTarget` to the `RemoteOptions`, since they are
  used in the same stack for some functions (like `Fetch()`). Now for
  those cases, the error returned by the callback will be preserved
  as-is.
2020-12-10 07:19:41 -08:00
lhchavez 5d8eaf7e65
Refactor all callbacks (#700)
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`.
2020-12-05 13:13:59 -08:00
lhchavez 137c05e802
Mark some symbols to be deprecated #minor (#698)
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
2020-12-05 07:23:44 -08:00
Suhaib Mujahid 5b6ce70b89
refactor: Use undeprecated options init (#656)
This PR move form linking against the deprecated `init_options` functions to the renamed `options_init` functions.

For more context see libgit2/libgit2@0b5ba0d744 and libgit2/libgit2@c6184f0c4b.
2020-10-22 06:18:11 -07:00
michael boulton 7d4453198b
Add support for creating signed commits and signing commits during a rebase (#626) 2020-08-18 09:25:31 -07:00
Josh Bleecher Snyder 9b850d084e rebase: make RebaseOperationType a fmt.Stringer
Helps with debugging.
2018-01-21 13:48:51 -08:00
Josh Bleecher Snyder 21fd4ad5f6 rebase: add RebaseOperationReword 2018-01-21 13:48:51 -08:00
Harsimran Singh Maan 3452fe984d Fix typo in the error message 2017-10-01 21:04:08 -07:00
Carlos Martín Nieto b98b0e7640 rebase: correct the return values for CurrentOperationIndex
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.
2017-07-08 21:34:10 +02:00
Carlos Martín Nieto 55a1096141 Third round of keep-alive aditions 2017-07-08 16:07:51 +02:00
ezwiebel 6118c9ba37 LockOSThread in CurrentOperationIndex for git error creation 2016-11-23 17:10:59 +11:00
ezwiebel a671e67ee8 Took @carlosmn PR review into account 2016-11-01 10:59:32 +11:00
ezwiebel 03e10c5639 Fix reference bug introduced with RebaseOptions implementation 2016-09-14 14:42:58 +10:00
ezwiebel adc3a4bd89 Add DefaultRebaseOptions() [git_rebase_init_options(GIT_REBASE_OPTIONS_VERSION)] service to wrapper 2016-09-13 16:03:16 +10:00
ezwiebel e00b0831aa Add RebaseOpen() service to wrapper 2016-09-12 15:58:53 +10:00
ezwiebel b2d71f4fbc Fix Free() service in Rebase wrapper 2016-08-08 10:49:40 +10:00
ezwiebel 193b21398b Add CurrentOperationIndex() and OperationAt(index uint) services to wrapper 2016-08-07 18:09:33 +10:00
ezwiebel e1f0949740 Add Abort() service to wrapper 2016-08-07 17:48:18 +10:00
ezwiebel a62a8c3b92 Add operation OperationCount() service and enrich UTs 2016-08-07 17:48:18 +10:00
ezwiebel b1a9de8037 Initial rebase wrapper version 2016-08-07 17:48:18 +10:00