diff options
| author | Vicent Marti <vicent@github.com> | 2014-05-09 08:59:59 +0200 |
|---|---|---|
| committer | Vicent Marti <vicent@github.com> | 2014-05-09 08:59:59 +0200 |
| commit | e18d5e52e385c0cc2ad8d9d4fdd545517f170a11 (patch) | |
| tree | c529a250e7a234dde7194510e4a6c4692a79a92e /include | |
| parent | 4df53a64a18aeea88a459183437cbd033cf4ca71 (diff) | |
| parent | bb45e39063669514b84ac5b47c3520cfe99396c3 (diff) | |
| download | libgit2-e18d5e52e385c0cc2ad8d9d4fdd545517f170a11.tar.gz | |
Merge pull request #2331 from libgit2/rb/dont-stop-diff-on-safecrlf
Add filter options and ALLOW_UNSAFE
Diffstat (limited to 'include')
| -rw-r--r-- | include/git2/filter.h | 9 | ||||
| -rw-r--r-- | include/git2/repository.h | 5 | ||||
| -rw-r--r-- | include/git2/sys/filter.h | 12 |
3 files changed, 23 insertions, 3 deletions
diff --git a/include/git2/filter.h b/include/git2/filter.h index f96b6766b..e57a67e73 100644 --- a/include/git2/filter.h +++ b/include/git2/filter.h @@ -35,6 +35,11 @@ typedef enum { GIT_FILTER_CLEAN = GIT_FILTER_TO_ODB, } git_filter_mode_t; +typedef enum { + GIT_FILTER_OPT_DEFAULT = 0u, + GIT_FILTER_OPT_ALLOW_UNSAFE = (1u << 0), +} git_filter_opt_t; + /** * A filter that can transform file data * @@ -75,6 +80,7 @@ typedef struct git_filter_list git_filter_list; * @param blob The blob to which the filter will be applied (if known) * @param path Relative path of the file to be filtered * @param mode Filtering direction (WT->ODB or ODB->WT) + * @param options Combination of `git_filter_opt_t` flags * @return 0 on success (which could still return NULL if no filters are * needed for the requested file), <0 on error */ @@ -83,7 +89,8 @@ GIT_EXTERN(int) git_filter_list_load( git_repository *repo, git_blob *blob, /* can be NULL */ const char *path, - git_filter_mode_t mode); + git_filter_mode_t mode, + uint32_t options); /** * Apply filter list to a data buffer. diff --git a/include/git2/repository.h b/include/git2/repository.h index e3f687a29..04df25fd3 100644 --- a/include/git2/repository.h +++ b/include/git2/repository.h @@ -546,6 +546,10 @@ GIT_EXTERN(int) git_repository_mergehead_foreach( * hash a file in the repository and you want to apply filtering rules (e.g. * crlf filters) before generating the SHA, then use this function. * + * Note: if the repository has `core.safecrlf` set to fail and the + * filtering triggers that failure, then this function will return an + * error and not calculate the hash of the file. + * * @param out Output value of calculated SHA * @param repo Repository pointer * @param path Path to file on disk whose contents should be hashed. If the @@ -555,6 +559,7 @@ GIT_EXTERN(int) git_repository_mergehead_foreach( * NULL, then the `path` parameter will be used instead. If * this is passed as the empty string, then no filters will be * applied when calculating the hash. + * @return 0 on success, or an error code */ GIT_EXTERN(int) git_repository_hashfile( git_oid *out, diff --git a/include/git2/sys/filter.h b/include/git2/sys/filter.h index 8fe21c9c0..60248271a 100644 --- a/include/git2/sys/filter.h +++ b/include/git2/sys/filter.h @@ -55,7 +55,10 @@ GIT_EXTERN(git_filter *) git_filter_lookup(const char *name); * your own chains of filters. */ GIT_EXTERN(int) git_filter_list_new( - git_filter_list **out, git_repository *repo, git_filter_mode_t mode); + git_filter_list **out, + git_repository *repo, + git_filter_mode_t mode, + uint32_t options); /** * Add a filter to a filter list with the given payload. @@ -115,10 +118,15 @@ GIT_EXTERN(uint16_t) git_filter_source_filemode(const git_filter_source *src); GIT_EXTERN(const git_oid *) git_filter_source_id(const git_filter_source *src); /** - * Get the git_filter_mode_t to be applied + * Get the git_filter_mode_t to be used */ GIT_EXTERN(git_filter_mode_t) git_filter_source_mode(const git_filter_source *src); +/** + * Get the combination git_filter_opt_t options to be applied + */ +GIT_EXTERN(uint32_t) git_filter_source_options(const git_filter_source *src); + /* * struct git_filter * |
