Browse Source

Sync with Git 2.20.1

* maint:
  Git 2.20.1
  .gitattributes: ensure t/oid-info/* has eol=lf
  t9902: 'send-email' test case requires PERL
  t4256: mark support files as LF-only
  parse-options: fix SunCC compiler warning
  help -a: handle aliases with long names gracefully
  help.h: fix coding style
  run-command: report exec failure
maint
Junio C Hamano 6 years ago
parent
commit
b21ebb671b
  1. 1
      .gitattributes
  2. 20
      Documentation/RelNotes/2.20.1.txt
  3. 2
      builtin/blame.c
  4. 2
      builtin/shortlog.c
  5. 2
      builtin/update-index.c
  6. 10
      help.c
  7. 2
      help.h
  8. 4
      parse-options.c
  9. 1
      parse-options.h
  10. 2
      run-command.c
  11. 1
      t/.gitattributes
  12. 9
      t/t0061-run-command.sh
  13. 2
      t/t9902-completion.sh

1
.gitattributes vendored

@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
/command-list.txt eol=lf
/GIT-VERSION-GEN eol=lf
/mergetools/* eol=lf
/t/oid-info/* eol=lf
/Documentation/git-merge.txt conflict-marker-size=32
/Documentation/gitk.txt conflict-marker-size=32
/Documentation/user-manual.txt conflict-marker-size=32

20
Documentation/RelNotes/2.20.1.txt

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
Git v2.20.1 Release Notes
=========================

This release is primarily to fix brown-paper-bag breakages in the
2.20.0 release.

Fixes since v2.20
-----------------

* A few newly added tests were not portable and caused minority
platforms to report false breakages, which have been fixed.

* Portability fix for a recent update to parse-options API.

* "git help -a" did not work well when an overly long alias is
defined, which has been corrected.

* A recent update accidentally squelched an error message when the
run_command API failed to run a missing command, which has been
corrected.

2
builtin/blame.c

@ -850,6 +850,8 @@ int cmd_blame(int argc, const char **argv, const char *prefix) @@ -850,6 +850,8 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
case PARSE_OPT_HELP:
case PARSE_OPT_ERROR:
exit(129);
case PARSE_OPT_COMPLETE:
exit(0);
case PARSE_OPT_DONE:
if (ctx.argv[0])
dashdash_pos = ctx.cpidx;

2
builtin/shortlog.c

@ -287,6 +287,8 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix) @@ -287,6 +287,8 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)
case PARSE_OPT_HELP:
case PARSE_OPT_ERROR:
exit(129);
case PARSE_OPT_COMPLETE:
exit(0);
case PARSE_OPT_DONE:
goto parse_done;
}

2
builtin/update-index.c

@ -1086,6 +1086,8 @@ int cmd_update_index(int argc, const char **argv, const char *prefix) @@ -1086,6 +1086,8 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
case PARSE_OPT_HELP:
case PARSE_OPT_ERROR:
exit(129);
case PARSE_OPT_COMPLETE:
exit(0);
case PARSE_OPT_NON_OPTION:
case PARSE_OPT_DONE:
{

10
help.c

@ -83,8 +83,9 @@ static void print_command_list(const struct cmdname_help *cmds, @@ -83,8 +83,9 @@ static void print_command_list(const struct cmdname_help *cmds,

for (i = 0; cmds[i].name; i++) {
if (cmds[i].category & mask) {
size_t len = strlen(cmds[i].name);
printf(" %s ", cmds[i].name);
mput_char(' ', longest - strlen(cmds[i].name));
mput_char(' ', longest > len ? longest - len : 1);
puts(_(cmds[i].help));
}
}
@ -526,6 +527,13 @@ void list_all_cmds_help(void) @@ -526,6 +527,13 @@ void list_all_cmds_help(void)

git_config(get_alias, &alias_list);
string_list_sort(&alias_list);

for (i = 0; i < alias_list.nr; i++) {
size_t len = strlen(alias_list.items[i].string);
if (longest < len)
longest = len;
}

if (alias_list.nr) {
printf("\n%s\n", _("Command aliases"));
ALLOC_ARRAY(aliases, alias_list.nr + 1);

2
help.h

@ -15,7 +15,7 @@ struct cmdnames { @@ -15,7 +15,7 @@ struct cmdnames {

static inline void mput_char(char c, unsigned int num)
{
while(num--)
while (num--)
putchar(c);
}


4
parse-options.c

@ -516,7 +516,7 @@ static int show_gitcomp(struct parse_opt_ctx_t *ctx, @@ -516,7 +516,7 @@ static int show_gitcomp(struct parse_opt_ctx_t *ctx,
show_negated_gitcomp(original_opts, -1);
show_negated_gitcomp(original_opts, nr_noopts);
fputc('\n', stdout);
exit(0);
return PARSE_OPT_COMPLETE;
}

static int usage_with_options_internal(struct parse_opt_ctx_t *,
@ -638,6 +638,8 @@ int parse_options(int argc, const char **argv, const char *prefix, @@ -638,6 +638,8 @@ int parse_options(int argc, const char **argv, const char *prefix,
case PARSE_OPT_HELP:
case PARSE_OPT_ERROR:
exit(129);
case PARSE_OPT_COMPLETE:
exit(0);
case PARSE_OPT_NON_OPTION:
case PARSE_OPT_DONE:
break;

1
parse-options.h

@ -208,6 +208,7 @@ extern int opterror(const struct option *opt, const char *reason, int flags); @@ -208,6 +208,7 @@ extern int opterror(const struct option *opt, const char *reason, int flags);
/*----- incremental advanced APIs -----*/

enum {
PARSE_OPT_COMPLETE = -2,
PARSE_OPT_HELP = -1,
PARSE_OPT_DONE,
PARSE_OPT_NON_OPTION,

2
run-command.c

@ -728,6 +728,8 @@ fail_pipe: @@ -728,6 +728,8 @@ fail_pipe:
if (prepare_cmd(&argv, cmd) < 0) {
failed_errno = errno;
cmd->pid = -1;
if (!cmd->silent_exec_failure)
error_errno("cannot run %s", cmd->argv[0]);
goto end_of_spawn;
}


1
t/.gitattributes vendored

@ -16,6 +16,7 @@ t[0-9][0-9][0-9][0-9]/* -whitespace @@ -16,6 +16,7 @@ t[0-9][0-9][0-9][0-9]/* -whitespace
/t4135/* eol=lf
/t4211/* eol=lf
/t4252/* eol=lf
/t4256/1/* eol=lf
/t5100/* eol=lf
/t5515/* eol=lf
/t556x_common eol=lf

9
t/t0061-run-command.sh

@ -13,11 +13,13 @@ cat >hello-script <<-EOF @@ -13,11 +13,13 @@ cat >hello-script <<-EOF
EOF

test_expect_success 'start_command reports ENOENT (slash)' '
test-tool run-command start-command-ENOENT ./does-not-exist
test-tool run-command start-command-ENOENT ./does-not-exist 2>err &&
test_i18ngrep "\./does-not-exist" err
'

test_expect_success 'start_command reports ENOENT (no slash)' '
test-tool run-command start-command-ENOENT does-not-exist
test-tool run-command start-command-ENOENT does-not-exist 2>err &&
test_i18ngrep "does-not-exist" err
'

test_expect_success 'run_command can run a command' '
@ -33,7 +35,8 @@ test_expect_success 'run_command is restricted to PATH' ' @@ -33,7 +35,8 @@ test_expect_success 'run_command is restricted to PATH' '
write_script should-not-run <<-\EOF &&
echo yikes
EOF
test_must_fail test-tool run-command run-command should-not-run
test_must_fail test-tool run-command run-command should-not-run 2>err &&
test_i18ngrep "should-not-run" err
'

test_expect_success !MINGW 'run_command can run a script without a #! line' '

2
t/t9902-completion.sh

@ -1539,7 +1539,7 @@ test_expect_success 'complete tree filename with metacharacters' ' @@ -1539,7 +1539,7 @@ test_expect_success 'complete tree filename with metacharacters' '
EOF
'

test_expect_success 'send-email' '
test_expect_success PERL 'send-email' '
test_completion "git send-email --cov" "--cover-letter " &&
test_completion "git send-email ma" "master "
'

Loading…
Cancel
Save