Commit Graph

13 Commits

Author SHA1 Message Date
lhchavez 37d110dbf0
Refactor all callbacks (#700) (#705)
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`.

(cherry picked from commit 5d8eaf7e65)
2020-12-05 17:10:18 -08:00
lhchavez 9912ed9742
Revert "More diff functionality (#629) (#636)" (#639)
This reverts commit 4d69027787.

v0.27 does not support this API.
2020-08-18 06:52:38 -07:00
github-actions[bot] 4d69027787
More diff functionality (#629) (#636)
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

(cherry picked from commit 7883ec85de)
2020-08-18 06:21:19 -07:00
Carlos Martín Nieto e55c00eca7 Run the tests in parallel
This saves about 1s, or 1/3 of the test runtime. The linking is still
much slower, but this we can control.
2016-08-27 19:21:05 +02:00
Carlos Martín Nieto e066d24efb Add DiffBlobs
This lets you diff two arbitrary blobs with arbitrary names.
2015-06-29 21:29:47 +02:00
Patrick Steinhardt e300945a3d tests: always clean up temporary repository dirs
Some test repositories are not correctly removed after the tests
did run. Fix by introducing a function that is to be used for
cleaning up temporary test repositories.
2015-04-24 13:01:51 +02:00
Henning Perl 18aea4bfe8 Add git_diff_get_stats()
This commit adds git_diff_get_stats() as well as functions to query the
stats for insertions, deletions, and changed files.
2015-01-04 12:13:46 +00:00
Quinn Slack d2a9d7768b heed DiffOptions fields OldPrefix and NewPrefix 2014-12-30 02:03:20 -08:00
Jochen Hilgers a4ae68783d Integrated git_diff_find_similar 2014-11-26 17:22:15 +01:00
Jesse Ezell 155f641683 don't expose 3 different diff foreach methods. use structures instead of pointers to structures for diff detail. add patch error code handling. trim excess data from diff structures. 2014-03-21 22:51:38 -07:00
Jesse Ezell f85c38ce22 Allow diff.ForEach to enumerate files, hunks, and lines with single call. Support use of closures for enumeration. 2014-03-21 17:20:48 -07:00
Jesse Ezell d78036fe24 refactor and cleanup code 2014-03-20 22:54:18 -07:00
Jesse Ezell d0b334b244 cleanup and refactor diff / patch 2014-03-20 21:56:41 -07:00