diff options
author | Russell Belfer <rb@github.com> | 2013-02-15 14:12:43 -0800 |
---|---|---|
committer | Russell Belfer <rb@github.com> | 2013-02-20 15:09:41 -0800 |
commit | a235e9d355c2188eb35efeac8147b2e8b626caa3 (patch) | |
tree | f39c053acea5c65b81ab461c5d6e4cb2df9607ff /include/git2/diff.h | |
parent | aa6432604e09de40ee20ee1f6631a2f717111863 (diff) | |
download | libgit2-a235e9d355c2188eb35efeac8147b2e8b626caa3.tar.gz |
Pluggable similarity metric API
Diffstat (limited to 'include/git2/diff.h')
-rw-r--r-- | include/git2/diff.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/git2/diff.h b/include/git2/diff.h index 3a88902ad..d90fedfbd 100644 --- a/include/git2/diff.h +++ b/include/git2/diff.h @@ -390,6 +390,16 @@ typedef enum { } git_diff_find_t; /** + * Pluggable similarity metric + */ +typedef struct { + int (*calc_signature)(void **out, const git_diff_file *file, void *payload); + void (*free_signature)(void *sig, void *payload); + int (*calc_similarity)(int *score, void *siga, void *sigb, void *payload); + void *payload; +} git_diff_similarity_metric; + +/** * Control behavior of rename and copy detection */ typedef struct { @@ -411,6 +421,9 @@ typedef struct { * the `diff.renameLimit` config) (default 200) */ unsigned int target_limit; + + /** Pluggable similarity metric; pass NULL to use internal metric */ + git_diff_similarity_metric *metric; } git_diff_find_options; #define GIT_DIFF_FIND_OPTIONS_VERSION 1 |