diff options
| author | Junio C Hamano <gitster@pobox.com> | 2020-03-26 17:11:20 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2020-03-26 17:11:20 -0700 |
| commit | 4e4baee3f44da26a5eaab27c76d597b04fef5259 (patch) | |
| tree | 5d0ebb218dddd9fc17531ac75d140bf59eb056da /convert.h | |
| parent | fa82be982dfc5b463a125991a2d381f1cd0ad9eb (diff) | |
| parent | 0c0f8a7f28672fa323312fbba394e5a9949b2aad (diff) | |
| download | git-4e4baee3f44da26a5eaab27c76d597b04fef5259.tar.xz | |
Merge branch 'bc/filter-process'
Provide more information (e.g. the object of the tree-ish in which
the blob being converted appears, in addition to its path, which
has already been given) to smudge/clean conversion filters.
* bc/filter-process:
t0021: test filter metadata for additional cases
builtin/reset: compute checkout metadata for reset
builtin/rebase: compute checkout metadata for rebases
builtin/clone: compute checkout metadata for clones
builtin/checkout: compute checkout metadata for checkouts
convert: provide additional metadata to filters
convert: permit passing additional metadata to filter processes
builtin/checkout: pass branch info down to checkout_worktree
Diffstat (limited to 'convert.h')
| -rw-r--r-- | convert.h | 29 |
1 files changed, 27 insertions, 2 deletions
@@ -4,10 +4,10 @@ #ifndef CONVERT_H #define CONVERT_H +#include "hash.h" #include "string-list.h" struct index_state; -struct object_id; struct strbuf; #define CONV_EOL_RNDTRP_DIE (1<<0) /* Die if CRLF to LF to CRLF is different */ @@ -57,6 +57,12 @@ struct delayed_checkout { struct string_list paths; }; +struct checkout_metadata { + const char *refname; + struct object_id treeish; + struct object_id blob; +}; + extern enum eol core_eol; extern char *check_roundtrip_encoding; const char *get_cached_convert_stats_ascii(const struct index_state *istate, @@ -71,10 +77,12 @@ int convert_to_git(const struct index_state *istate, struct strbuf *dst, int conv_flags); int convert_to_working_tree(const struct index_state *istate, const char *path, const char *src, - size_t len, struct strbuf *dst); + size_t len, struct strbuf *dst, + const struct checkout_metadata *meta); int async_convert_to_working_tree(const struct index_state *istate, const char *path, const char *src, size_t len, struct strbuf *dst, + const struct checkout_metadata *meta, void *dco); int async_query_available_blobs(const char *cmd, struct string_list *available_paths); @@ -95,6 +103,23 @@ int would_convert_to_git_filter_fd(const struct index_state *istate, const char *path); /* + * Initialize the checkout metadata with the given values. Any argument may be + * NULL if it is not applicable. The treeish should be a commit if that is + * available, and a tree otherwise. + * + * The refname is not copied and must be valid for the lifetime of the struct. + * THe object IDs are copied. + */ +void init_checkout_metadata(struct checkout_metadata *meta, const char *refname, + const struct object_id *treeish, + const struct object_id *blob); + +/* Copy the metadata from src to dst, updating the blob. */ +void clone_checkout_metadata(struct checkout_metadata *dst, + const struct checkout_metadata *src, + const struct object_id *blob); + +/* * Reset the internal list of attributes used by convert_to_git and * convert_to_working_tree. */ |
