Merge branch 'tr/maint-no-index-fixes'
* tr/maint-no-index-fixes: diff --no-index -q: fix endless loop diff --no-index: test for pager after option parsing diff: accept -- when using --no-index
This commit is contained in:
commit
33256e6b1b
@ -173,8 +173,10 @@ void diff_no_index(struct rev_info *revs,
|
|||||||
|
|
||||||
/* Were we asked to do --no-index explicitly? */
|
/* Were we asked to do --no-index explicitly? */
|
||||||
for (i = 1; i < argc; i++) {
|
for (i = 1; i < argc; i++) {
|
||||||
if (!strcmp(argv[i], "--"))
|
if (!strcmp(argv[i], "--")) {
|
||||||
return;
|
i++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (!strcmp(argv[i], "--no-index"))
|
if (!strcmp(argv[i], "--no-index"))
|
||||||
no_index = 1;
|
no_index = 1;
|
||||||
if (argv[i][0] != '-')
|
if (argv[i][0] != '-')
|
||||||
@ -198,13 +200,6 @@ void diff_no_index(struct rev_info *revs,
|
|||||||
die("git diff %s takes two paths",
|
die("git diff %s takes two paths",
|
||||||
no_index ? "--no-index" : "[--no-index]");
|
no_index ? "--no-index" : "[--no-index]");
|
||||||
|
|
||||||
/*
|
|
||||||
* If the user asked for our exit code then don't start a
|
|
||||||
* pager or we would end up reporting its exit code instead.
|
|
||||||
*/
|
|
||||||
if (!DIFF_OPT_TST(&revs->diffopt, EXIT_WITH_STATUS))
|
|
||||||
setup_pager();
|
|
||||||
|
|
||||||
diff_setup(&revs->diffopt);
|
diff_setup(&revs->diffopt);
|
||||||
if (!revs->diffopt.output_format)
|
if (!revs->diffopt.output_format)
|
||||||
revs->diffopt.output_format = DIFF_FORMAT_PATCH;
|
revs->diffopt.output_format = DIFF_FORMAT_PATCH;
|
||||||
@ -212,8 +207,12 @@ void diff_no_index(struct rev_info *revs,
|
|||||||
int j;
|
int j;
|
||||||
if (!strcmp(argv[i], "--no-index"))
|
if (!strcmp(argv[i], "--no-index"))
|
||||||
i++;
|
i++;
|
||||||
else if (!strcmp(argv[1], "-q"))
|
else if (!strcmp(argv[i], "-q")) {
|
||||||
options |= DIFF_SILENT_ON_REMOVED;
|
options |= DIFF_SILENT_ON_REMOVED;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
else if (!strcmp(argv[i], "--"))
|
||||||
|
i++;
|
||||||
else {
|
else {
|
||||||
j = diff_opt_parse(&revs->diffopt, argv + i, argc - i);
|
j = diff_opt_parse(&revs->diffopt, argv + i, argc - i);
|
||||||
if (!j)
|
if (!j)
|
||||||
@ -222,6 +221,13 @@ void diff_no_index(struct rev_info *revs,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If the user asked for our exit code then don't start a
|
||||||
|
* pager or we would end up reporting its exit code instead.
|
||||||
|
*/
|
||||||
|
if (!DIFF_OPT_TST(&revs->diffopt, EXIT_WITH_STATUS))
|
||||||
|
setup_pager();
|
||||||
|
|
||||||
if (prefix) {
|
if (prefix) {
|
||||||
int len = strlen(prefix);
|
int len = strlen(prefix);
|
||||||
|
|
||||||
|
@ -261,6 +261,7 @@ diff --patch-with-stat -r initial..side
|
|||||||
diff --patch-with-raw -r initial..side
|
diff --patch-with-raw -r initial..side
|
||||||
diff --name-status dir2 dir
|
diff --name-status dir2 dir
|
||||||
diff --no-index --name-status dir2 dir
|
diff --no-index --name-status dir2 dir
|
||||||
|
diff --no-index --name-status -- dir2 dir
|
||||||
diff master master^ side
|
diff master master^ side
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
3
t/t4013/diff.diff_--no-index_--name-status_--_dir2_dir
Normal file
3
t/t4013/diff.diff_--no-index_--name-status_--_dir2_dir
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
$ git diff --no-index --name-status -- dir2 dir
|
||||||
|
A dir/sub
|
||||||
|
$
|
Loading…
Reference in New Issue
Block a user