Message ID | 296ebacafe4d40ffc5282aebb9fee972866c4ccc.1641043500.git.dyroneteng@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | ls-tree: "--object-only" and "--format" opts | expand |
Teng Long <dyroneteng@gmail.com> writes: > "show_data" is a struct that packages the necessary fields for Is that shown_data? > reusing. This commit is a front-loaded commit for support > "--format" argument and does not affect any existing functionality. What's a front-loaded commit? Is that some joke around a washing machine that I do not quite get, or something? > Signed-off-by: Teng Long <dyroneteng@gmail.com> > --- > builtin/ls-tree.c | 47 +++++++++++++++++++++++++++++------------------ > 1 file changed, 29 insertions(+), 18 deletions(-) > > diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c > index 85ca7358ba..009ffeb15d 100644 > --- a/builtin/ls-tree.c > +++ b/builtin/ls-tree.c > @@ -34,6 +34,14 @@ static unsigned int shown_bits; > #define SHOW_MODE (1 << 4) > #define SHOW_DEFAULT 29 /* 11101 size is not shown to output by default */ > > +struct shown_data { > + unsigned mode; > + enum object_type type; > + const struct object_id *oid; > + const char *pathname; > + struct strbuf *base; > +}; > + > static const char * const ls_tree_usage[] = { > N_("git ls-tree [<options>] <tree-ish> [<path>...]"), > NULL > @@ -98,17 +106,15 @@ static int show_recursive(const char *base, size_t baselen, > return 0; > } > > -static int show_default(const struct object_id *oid, enum object_type type, > - const char *pathname, unsigned mode, > - struct strbuf *base) > +static int show_default(struct shown_data *data) > { > - size_t baselen = base->len; > + size_t baselen = data->base->len; > > if (shown_bits & SHOW_SIZE) { > char size_text[24]; > - if (type == OBJ_BLOB) { > + if (data->type == OBJ_BLOB) { > unsigned long size; > - if (oid_object_info(the_repository, oid, &size) == OBJ_BAD) > + if (oid_object_info(the_repository, data->oid, &size) == OBJ_BAD) > xsnprintf(size_text, sizeof(size_text), "BAD"); > else > xsnprintf(size_text, sizeof(size_text), > @@ -116,18 +122,18 @@ static int show_default(const struct object_id *oid, enum object_type type, > } else { > xsnprintf(size_text, sizeof(size_text), "-"); > } > - printf("%06o %s %s %7s\t", mode, type_name(type), > - find_unique_abbrev(oid, abbrev), size_text); > + printf("%06o %s %s %7s\t", data->mode, type_name(data->type), > + find_unique_abbrev(data->oid, abbrev), size_text); > } else { > - printf("%06o %s %s\t", mode, type_name(type), > - find_unique_abbrev(oid, abbrev)); > + printf("%06o %s %s\t", data->mode, type_name(data->type), > + find_unique_abbrev(data->oid, abbrev)); > } > - baselen = base->len; > - strbuf_addstr(base, pathname); > - write_name_quoted_relative(base->buf, > + baselen = data->base->len; > + strbuf_addstr(data->base, data->pathname); > + write_name_quoted_relative(data->base->buf, > chomp_prefix ? ls_tree_prefix : NULL, stdout, > line_termination); > - strbuf_setlen(base, baselen); > + strbuf_setlen(data->base, baselen); > return 1; > } > > @@ -154,11 +160,16 @@ static int show_tree(const struct object_id *oid, struct strbuf *base, > { > int retval = 0; > size_t baselen; > - enum object_type type = OBJ_BLOB; > + struct shown_data data = { > + .mode = mode, > + .type = OBJ_BLOB, > + .oid = oid, > + .pathname = pathname, > + .base = base, > + }; > > - if (show_tree_init(&type, base, pathname, mode, &retval)) > + if (show_tree_init(&data.type, base, pathname, mode, &retval)) > return retval; > - > if (!(shown_bits ^ SHOW_OBJECT_NAME)) { > printf("%s%c", find_unique_abbrev(oid, abbrev), line_termination); > return retval; > @@ -175,7 +186,7 @@ static int show_tree(const struct object_id *oid, struct strbuf *base, > > if (!(shown_bits ^ SHOW_DEFAULT) || > !(shown_bits ^ (SHOW_DEFAULT | SHOW_SIZE))) > - show_default(oid, type, pathname, mode, base); > + show_default(&data); > > return retval; > }
>> "show_data" is a struct that packages the necessary fields for >Is that shown_data? Yes, sorry for that mislead. >> reusing. This commit is a front-loaded commit for support >> "--format" argument and does not affect any existing functionality. > What's a front-loaded commit? Is that some joke around a washing > machine that I do not quite get, or something? I know this word recently (from an English training institute), feel sorry if it confuses you, I think it means pre-prepared. I found two demo sentences from: https://dictionary.cambridge.org/us/dictionary/english/front-load I'm not sure that I used it right or wrong, if it's the wrong way or just make others feel like in haze, I will use “pre-prepared” preferentially next time. Thanks. Junio C Hamano <gitster@pobox.com> 于2022年1月4日周二 07:21写道: > > Teng Long <dyroneteng@gmail.com> writes: > > > "show_data" is a struct that packages the necessary fields for > > Is that shown_data? > > > reusing. This commit is a front-loaded commit for support > > "--format" argument and does not affect any existing functionality. > > What's a front-loaded commit? Is that some joke around a washing > machine that I do not quite get, or something? > > > Signed-off-by: Teng Long <dyroneteng@gmail.com> > > --- > > builtin/ls-tree.c | 47 +++++++++++++++++++++++++++++------------------ > > 1 file changed, 29 insertions(+), 18 deletions(-) > > > > diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c > > index 85ca7358ba..009ffeb15d 100644 > > --- a/builtin/ls-tree.c > > +++ b/builtin/ls-tree.c > > @@ -34,6 +34,14 @@ static unsigned int shown_bits; > > #define SHOW_MODE (1 << 4) > > #define SHOW_DEFAULT 29 /* 11101 size is not shown to output by default */ > > > > +struct shown_data { > > + unsigned mode; > > + enum object_type type; > > + const struct object_id *oid; > > + const char *pathname; > > + struct strbuf *base; > > +}; > > + > > static const char * const ls_tree_usage[] = { > > N_("git ls-tree [<options>] <tree-ish> [<path>...]"), > > NULL > > @@ -98,17 +106,15 @@ static int show_recursive(const char *base, size_t baselen, > > return 0; > > } > > > > -static int show_default(const struct object_id *oid, enum object_type type, > > - const char *pathname, unsigned mode, > > - struct strbuf *base) > > +static int show_default(struct shown_data *data) > > { > > - size_t baselen = base->len; > > + size_t baselen = data->base->len; > > > > if (shown_bits & SHOW_SIZE) { > > char size_text[24]; > > - if (type == OBJ_BLOB) { > > + if (data->type == OBJ_BLOB) { > > unsigned long size; > > - if (oid_object_info(the_repository, oid, &size) == OBJ_BAD) > > + if (oid_object_info(the_repository, data->oid, &size) == OBJ_BAD) > > xsnprintf(size_text, sizeof(size_text), "BAD"); > > else > > xsnprintf(size_text, sizeof(size_text), > > @@ -116,18 +122,18 @@ static int show_default(const struct object_id *oid, enum object_type type, > > } else { > > xsnprintf(size_text, sizeof(size_text), "-"); > > } > > - printf("%06o %s %s %7s\t", mode, type_name(type), > > - find_unique_abbrev(oid, abbrev), size_text); > > + printf("%06o %s %s %7s\t", data->mode, type_name(data->type), > > + find_unique_abbrev(data->oid, abbrev), size_text); > > } else { > > - printf("%06o %s %s\t", mode, type_name(type), > > - find_unique_abbrev(oid, abbrev)); > > + printf("%06o %s %s\t", data->mode, type_name(data->type), > > + find_unique_abbrev(data->oid, abbrev)); > > } > > - baselen = base->len; > > - strbuf_addstr(base, pathname); > > - write_name_quoted_relative(base->buf, > > + baselen = data->base->len; > > + strbuf_addstr(data->base, data->pathname); > > + write_name_quoted_relative(data->base->buf, > > chomp_prefix ? ls_tree_prefix : NULL, stdout, > > line_termination); > > - strbuf_setlen(base, baselen); > > + strbuf_setlen(data->base, baselen); > > return 1; > > } > > > > @@ -154,11 +160,16 @@ static int show_tree(const struct object_id *oid, struct strbuf *base, > > { > > int retval = 0; > > size_t baselen; > > - enum object_type type = OBJ_BLOB; > > + struct shown_data data = { > > + .mode = mode, > > + .type = OBJ_BLOB, > > + .oid = oid, > > + .pathname = pathname, > > + .base = base, > > + }; > > > > - if (show_tree_init(&type, base, pathname, mode, &retval)) > > + if (show_tree_init(&data.type, base, pathname, mode, &retval)) > > return retval; > > - > > if (!(shown_bits ^ SHOW_OBJECT_NAME)) { > > printf("%s%c", find_unique_abbrev(oid, abbrev), line_termination); > > return retval; > > @@ -175,7 +186,7 @@ static int show_tree(const struct object_id *oid, struct strbuf *base, > > > > if (!(shown_bits ^ SHOW_DEFAULT) || > > !(shown_bits ^ (SHOW_DEFAULT | SHOW_SIZE))) > > - show_default(oid, type, pathname, mode, base); > > + show_default(&data); > > > > return retval; > > }
diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c index 85ca7358ba..009ffeb15d 100644 --- a/builtin/ls-tree.c +++ b/builtin/ls-tree.c @@ -34,6 +34,14 @@ static unsigned int shown_bits; #define SHOW_MODE (1 << 4) #define SHOW_DEFAULT 29 /* 11101 size is not shown to output by default */ +struct shown_data { + unsigned mode; + enum object_type type; + const struct object_id *oid; + const char *pathname; + struct strbuf *base; +}; + static const char * const ls_tree_usage[] = { N_("git ls-tree [<options>] <tree-ish> [<path>...]"), NULL @@ -98,17 +106,15 @@ static int show_recursive(const char *base, size_t baselen, return 0; } -static int show_default(const struct object_id *oid, enum object_type type, - const char *pathname, unsigned mode, - struct strbuf *base) +static int show_default(struct shown_data *data) { - size_t baselen = base->len; + size_t baselen = data->base->len; if (shown_bits & SHOW_SIZE) { char size_text[24]; - if (type == OBJ_BLOB) { + if (data->type == OBJ_BLOB) { unsigned long size; - if (oid_object_info(the_repository, oid, &size) == OBJ_BAD) + if (oid_object_info(the_repository, data->oid, &size) == OBJ_BAD) xsnprintf(size_text, sizeof(size_text), "BAD"); else xsnprintf(size_text, sizeof(size_text), @@ -116,18 +122,18 @@ static int show_default(const struct object_id *oid, enum object_type type, } else { xsnprintf(size_text, sizeof(size_text), "-"); } - printf("%06o %s %s %7s\t", mode, type_name(type), - find_unique_abbrev(oid, abbrev), size_text); + printf("%06o %s %s %7s\t", data->mode, type_name(data->type), + find_unique_abbrev(data->oid, abbrev), size_text); } else { - printf("%06o %s %s\t", mode, type_name(type), - find_unique_abbrev(oid, abbrev)); + printf("%06o %s %s\t", data->mode, type_name(data->type), + find_unique_abbrev(data->oid, abbrev)); } - baselen = base->len; - strbuf_addstr(base, pathname); - write_name_quoted_relative(base->buf, + baselen = data->base->len; + strbuf_addstr(data->base, data->pathname); + write_name_quoted_relative(data->base->buf, chomp_prefix ? ls_tree_prefix : NULL, stdout, line_termination); - strbuf_setlen(base, baselen); + strbuf_setlen(data->base, baselen); return 1; } @@ -154,11 +160,16 @@ static int show_tree(const struct object_id *oid, struct strbuf *base, { int retval = 0; size_t baselen; - enum object_type type = OBJ_BLOB; + struct shown_data data = { + .mode = mode, + .type = OBJ_BLOB, + .oid = oid, + .pathname = pathname, + .base = base, + }; - if (show_tree_init(&type, base, pathname, mode, &retval)) + if (show_tree_init(&data.type, base, pathname, mode, &retval)) return retval; - if (!(shown_bits ^ SHOW_OBJECT_NAME)) { printf("%s%c", find_unique_abbrev(oid, abbrev), line_termination); return retval; @@ -175,7 +186,7 @@ static int show_tree(const struct object_id *oid, struct strbuf *base, if (!(shown_bits ^ SHOW_DEFAULT) || !(shown_bits ^ (SHOW_DEFAULT | SHOW_SIZE))) - show_default(oid, type, pathname, mode, base); + show_default(&data); return retval; }
"show_data" is a struct that packages the necessary fields for reusing. This commit is a front-loaded commit for support "--format" argument and does not affect any existing functionality. Signed-off-by: Teng Long <dyroneteng@gmail.com> --- builtin/ls-tree.c | 47 +++++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 18 deletions(-)