summaryrefslogtreecommitdiff
path: root/tests-clar/diff/blob.c
Commit message (Collapse)AuthorAgeFilesLines
* Initial integration of similarity metric to diffRussell Belfer2013-02-211-2/+2
| | | | | | | | | | | | | | | | This is the initial integration of the similarity metric into the `git_diff_find_similar()` code path. The existing tests all pass, but the new functionality isn't currently well tested. The integration does go through the pluggable metric interface, so it should be possible to drop in an alternative to the internal metric that libgit2 implements. This comes along with a behavior change for an existing interface; namely, passing two NULLs to git_diff_blobs (or passing NULLs to git_diff_blob_to_buffer) will now call the file_cb parameter zero times instead of one time. I know it's strange that that change is paired with this other change, but it emerged from some initialization changes that I ended up making.
* More diff tests with binary dataRussell Belfer2013-02-111-15/+119
|
* Share git_diff_blobs/git_diff_blob_to_buffer codeRussell Belfer2013-01-071-0/+78
| | | | | | | This moves the implementation of these two APIs into common code that will be shared between the two. Also, this adds tests for the `git_diff_blob_to_buffer` API. Lastly, this adds some extra `const` to a few places that can use it.
* blob: introduce git_blob_is_binary()nulltoken2012-12-171-0/+12
|
* Deploy GIT_INIT_STRUCTUREBen Straub2012-11-301-1/+1
|
* Deploy GIT_DIFF_OPTIONS_INITBen Straub2012-11-301-1/+23
|
* Update diff callback param orderRussell Belfer2012-11-271-18/+18
| | | | | | | | This makes the diff functions that take callbacks both take the payload parameter after the callback function pointers and pass the payload as the last argument to the callback function instead of the first. This should make them consistent with other callbacks across the API.
* More external API cleanupVicent Marti2012-11-271-18/+18
| | | | | | Conflicts: src/branch.c tests-clar/refs/branches/create.c
* Reset all static variables to NULL in clar's __cleanupSascha Cunz2012-11-231-0/+3
| | | | | | | | | | | | Without this change, any failed assertion in the second (or a later) test inside a test suite has a chance of double deleting memory, resulting in a heap corruption. See #1096 for details. This leaves alone the test cases where we "just" use cl_git_sandbox_init() and cl_git_sandbox_cleanup(). These methods already take good care to not double delete a repository. Fixes #1096
* Initial implementation of diff rename detectionRussell Belfer2012-10-231-39/+37
| | | | | | | | | | | | | | | | This implements the basis for diff rename and copy detection, although it is based on simple SHA comparison right now instead of using a matching algortihm. Just as `git_diff_merge` can be used as a post-pass on diffs to emulate certain command line behaviors, there is a new API `git_diff_detect` which will update a diff list in-place, adjusting some deltas to RENAMED or COPIED state (and also, eventually, splitting MODIFIED deltas where the change is too large into DELETED/ADDED pairs). This also adds a new test repo that will hold rename/copy/split scenarios. Right now, it just has exact-match rename and copy, but the tests are written to use tree diffs, so we should be able to add new test scenarios easily without breaking tests.
* Diff iteratorsRussell Belfer2012-09-051-59/+59
| | | | | | | | | | | This refactors the diff output code so that an iterator object can be used to traverse and generate the diffs, instead of just the `foreach()` style with callbacks. The code has been rearranged so that the two styles can still share most functions. This also replaces `GIT_REVWALKOVER` with `GIT_ITEROVER` and uses that as a common error code for marking the end of iteration when using a iterator style of object.
* diff: make inter-hunk-context default value git-compliantyorah2012-07-021-5/+65
| | | | Default in git core is 0, not 3
* Fix MSVC compilation issuenulltoken2012-05-091-104/+104
| | | | | | | | exp() is already defined in math.h. This leads to LMSVC complaining ..\..\libgit2\tests-clar\diff\blob.c(5): error C2365: 'exp' : redefinition; previous definition was 'function' Renaming the variable fixes this issue.
* tests-clar/diff: fix missing-prototype warningMichael Schubert2012-05-091-2/+2
|
* diff: fix the diffing of two identical blobsnulltoken2012-05-071-0/+31
|
* diff: make git_diff_blobs() able to detect binary blobsnulltoken2012-05-071-10/+113
|
* diff: fix the diffing of a concrete blob against a null onenulltoken2012-05-071-13/+42
|
* diff: When diffing two blobs, ensure the delta callback parameter is filled ↵nulltoken2012-05-071-1/+1
| | | | with relevant information
* diff_output: remove unused parameterschu2012-03-211-4/+4
| | | | Signed-off-by: schu <schu-github@schulog.org>
* Clean up GIT_UNUSED macros on all platformsRussell Belfer2012-03-021-7/+2
| | | | | | | | | | | | | | | | | | | It turns out that commit 31e9cfc4cbcaf1b38cdd3dbe3282a8f57e5366a5 did not fix the GIT_USUSED behavior on all platforms. This commit walks through and really cleans things up more thoroughly, getting rid of the unnecessary stuff. To remove the use of some GIT_UNUSED, I ended up adding a couple of new iterators for hashtables that allow you to iterator just over keys or just over values. In making this change, I found a bug in the clar tests (where we were doing *count++ but meant to do (*count)++ to increment the value). I fixed that but then found the test failing because it was not really using an empty repo. So, I took some of the code that I wrote for iterator testing and moved it to clar_helpers.c, then made use of that to make it easier to open fixtures on a per test basis even within a single test file.
* Continue implementation of git-diffRussell Belfer2012-03-021-3/+2
| | | | | | | | * Implemented git_diff_index_to_tree * Reworked git_diff_options structure to handle more options * Made most of the options in git_diff_options actually work * Reorganized code a bit to remove some redundancy * Added option parsing to examples/diff.c to test most options
* Clean up diff implementation for reviewRussell Belfer2012-03-021-0/+97
This fixes several bugs, updates tests and docs, eliminates the FILE* assumption in favor of printing callbacks for the diff patch formatter helpers, and adds a "diff" example function that can perform a diff from the command line.