| 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.
|
|
DiffIgnoreWitespaceEol contains a typo and does not have the same name as it's libgit2 counterpart.
Fixes #773
|
|
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.
|
|
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`.
|
|
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
|
|
Adds bindings to the git_apply_to_tree function that allows applying
a diff directly to a tree.
|
|
This PR move form linking against the deprecated `init_options` functions to the renamed `options_init` functions.
For more context see libgit2/libgit2@0b5ba0d744e69da5dc8c08d167c83dd87ed83af2 and libgit2/libgit2@c6184f0c4b209e462bf3f42ab20df2d13d8ee918.
|
|
This PR adds
- The ability to apply a Diff object to the repo
- Support for git_apply_hunk_cb and git_apply_delta_cb callbacks in options for applying the diffs
- The ability to import a diff from a raw buffer (for example, one exported by ToBuf) into a Diff object associated with the repo
- Tests for the above
|
|
This change makes the DiffNotifyCallback always use an "unowned"
*git.Diff that does _not_ run the finalizer. Since the underlying
git_diff object is still owned by libgit2, we shouldn't be calling
Diff.Free() on it, even by accident, since that would cause a whole lot
of undefined behavior.
Now instead of storing a reference to a *git.Diff in the intermediate
state while the diff operation is being done, create a brand new
*git.Diff for every callback invocation, and only create a fully-owned
*git.Diff when the diff operation is done and the ownership is
transfered to Go.
|
|
It is not Go idiomatic to put Get into the getter's name.
https: //golang.org/doc/effective_go.html#Getters
Co-Authored-By: lhchavez <[email protected]>
|
|
This change makes the underlying type of DiffFlag be uint32 instead of
int. That makes it possible to build on 32-bit systems.
Fixes: #487
|
|
make Delta and DiffLineType stringers
|
|
Without a parameter name, the float64 param is pretty inscrutable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This implements git_diff_stats_to_buf which provides the output for
git diff --stats.
|
|
|
|
|
|
This is equivalent to `git diff --cached <treeish` or `diff --cached`.
|
|
|
|
This lets you diff two arbitrary blobs with arbitrary names.
|
|
|
|
|
|
|
|
|
|
|
|
This commit adds git_diff_get_stats() as well as functions to query the
stats for insertions, deletions, and changed files.
|
|
|
|
This change also factor out diffOptionsToC function to remove
duplicated code.
|
|
|
|
|
|
Integrated git_diff_find_similar
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
pointers to structures for diff detail. add patch error code handling. trim excess data from diff structures.
|
|
Support use of closures for enumeration.
|
|
|
|
|
|
|
|
|
|
|
|
|