summaryrefslogtreecommitdiff
path: root/tests/apply/fromdiff.c
Commit message (Collapse)AuthorAgeFilesLines
* str: introduce `git_str` for internal, `git_buf` is externalethomson/gitstrEdward Thomson2021-10-171-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | libgit2 has two distinct requirements that were previously solved by `git_buf`. We require: 1. A general purpose string class that provides a number of utility APIs for manipulating data (eg, concatenating, truncating, etc). 2. A structure that we can use to return strings to callers that they can take ownership of. By using a single class (`git_buf`) for both of these purposes, we have confused the API to the point that refactorings are difficult and reasoning about correctness is also difficult. Move the utility class `git_buf` to be called `git_str`: this represents its general purpose, as an internal string buffer class. The name also is an homage to Junio Hamano ("gitstr"). The public API remains `git_buf`, and has a much smaller footprint. It is generally only used as an "out" param with strict requirements that follow the documentation. (Exceptions exist for some legacy APIs to avoid breaking callers unnecessarily.) Utility functions exist to convert a user-specified `git_buf` to a `git_str` so that we can call internal functions, then converting it back again.
* buf: remove internal `git_buf_text` namespaceEdward Thomson2021-05-111-1/+0
| | | | | The `git_buf_text` namespace is unnecessary and strange. Remove it, just keep the functions prefixed with `git_buf`.
* apply: Test for EOFNL mishandling when several hunks are processedMax Kostyukevich2019-08-281-0/+11
| | | | | Introduce an unit test to validate that git_apply__patch() properly handles EOFNL changes in case of patches with several hunks.
* tests: apply: verify that we correctly truncate the source bufferPatrick Steinhardt2019-02-211-0/+33
| | | | | | | | | | Previously, we would fail to correctly truncate the source buffer if the source has more than one line and ends with a non-newline character. In the following call, we thus truncate the source string in the middle of the second line. Without the bug fixed, we would successfully apply the patch to the source and return success. With the overflow being fixed, we should return an error now.
* patch: add support for partial patch applicationJason Haslam2018-11-051-0/+46
| | | | Add hunk callback parameter to git_apply__patch to allow hunks to be skipped.
* apply: introduce a hunk callbackEdward Thomson2018-11-051-1/+1
| | | | | Introduce a callback to patch application that allows consumers to cancel hunk application.
* Convert usage of `git_buf_free` to new `git_buf_dispose`Patrick Steinhardt2018-06-101-2/+2
|
* apply: move patch data to patch_common.hEdward Thomson2016-05-261-1/+1
|
* patch application: apply binary patchesEdward Thomson2016-05-261-11/+116
| | | | | | Handle the application of binary patches. Include tests that produce a binary patch (an in-memory `git_patch` object), then enusre that the patch applies correctly.
* apply: handle empty patchesEdward Thomson2016-05-261-0/+8
| | | | When a patch is empty, simply copy the source into the destination.
* Introduce git_apply_patchEdward Thomson2016-05-261-0/+176
The beginnings of patch application from an existing (diff-created) git_patch object: applies the hunks of a git_patch to a buffer.