diff options
| author | Junio C Hamano <gitster@pobox.com> | 2019-02-05 14:26:09 -0800 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2019-02-05 14:26:10 -0800 |
| commit | 073312b4c7a15d484d2ffdc2eb4a406df9cf9c55 (patch) | |
| tree | 473d2508e4ba7d7e424445d2ddce2a9cf659ea46 /list-objects-filter-options.h | |
| parent | b99a579f8e434a7757f90895945b5711b3f159d5 (diff) | |
| parent | 87c2d9d3102e6c388f2d29f1bdb0b3a222d9a707 (diff) | |
| download | git-073312b4c7a15d484d2ffdc2eb4a406df9cf9c55.tar.xz | |
Merge branch 'js/filter-options-should-use-plain-int'
Update the protocol message specification to allow only the limited
use of scaled quantities. This is ensure potential compatibility
issues will not go out of hand.
* js/filter-options-should-use-plain-int:
filter-options: expand scaled numbers
tree:<depth>: skip some trees even when collecting omits
list-objects-filter: teach tree:# how to handle >0
Diffstat (limited to 'list-objects-filter-options.h')
| -rw-r--r-- | list-objects-filter-options.h | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/list-objects-filter-options.h b/list-objects-filter-options.h index af64e5c66f..e3adc78ebf 100644 --- a/list-objects-filter-options.h +++ b/list-objects-filter-options.h @@ -2,6 +2,7 @@ #define LIST_OBJECTS_FILTER_OPTIONS_H #include "parse-options.h" +#include "strbuf.h" /* * The list of defined filters for list-objects. @@ -10,7 +11,7 @@ enum list_objects_filter_choice { LOFC_DISABLED = 0, LOFC_BLOB_NONE, LOFC_BLOB_LIMIT, - LOFC_TREE_NONE, + LOFC_TREE_DEPTH, LOFC_SPARSE_OID, LOFC_SPARSE_PATH, LOFC__COUNT /* must be last */ @@ -20,8 +21,9 @@ struct list_objects_filter_options { /* * 'filter_spec' is the raw argument value given on the command line * or protocol request. (The part after the "--keyword=".) For - * commands that launch filtering sub-processes, this value should be - * passed to them as received by the current process. + * commands that launch filtering sub-processes, or for communication + * over the network, don't use this value; use the result of + * expand_list_objects_filter_spec() instead. */ char *filter_spec; @@ -44,6 +46,7 @@ struct list_objects_filter_options { struct object_id *sparse_oid_value; char *sparse_path_value; unsigned long blob_limit_value; + unsigned long tree_exclude_depth; }; /* Normalized command line arguments */ @@ -61,6 +64,17 @@ int opt_parse_list_objects_filter(const struct option *opt, N_("object filtering"), 0, \ opt_parse_list_objects_filter } +/* + * Translates abbreviated numbers in the filter's filter_spec into their + * fully-expanded forms (e.g., "limit:blob=1k" becomes "limit:blob=1024"). + * + * This form should be used instead of the raw filter_spec field when + * communicating with a remote process or subprocess. + */ +void expand_list_objects_filter_spec( + const struct list_objects_filter_options *filter, + struct strbuf *expanded_spec); + void list_objects_filter_release( struct list_objects_filter_options *filter_options); |
