mirror of
https://github.com/git/git
synced 2024-10-06 00:29:28 +00:00
diff: skip implicit no-index check when given --no-index
We can invoke no-index mode in two ways: by an explicit request from the user, or implicitly by noticing that we have two paths, and at least one is outside the repository. If the user already told us --no-index, there is no need for us to do the implicit test at all. However, we currently do, and downgrade our "explicit" to DIFF_NO_INDEX_IMPLICIT. This doesn't have any user-visible behavior, though it's not immediately obvious why. We only trigger the implicit check when we have exactly two non-option arguments. And the only code that cares about implicit versus explicit is an error message that we show when we _don't_ have two non-option arguments. However, it's worth fixing anyway. Besides being slightly more efficient, it makes the code easier to follow, which will help when we modify it in future patches. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
4a73aaaf18
commit
475b362c2a
|
@ -301,7 +301,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!no_index)
|
if (!no_index) {
|
||||||
prefix = setup_git_directory_gently(&nongit);
|
prefix = setup_git_directory_gently(&nongit);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -315,6 +315,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
|
||||||
(!path_inside_repo(prefix, argv[i]) ||
|
(!path_inside_repo(prefix, argv[i]) ||
|
||||||
!path_inside_repo(prefix, argv[i + 1]))))
|
!path_inside_repo(prefix, argv[i + 1]))))
|
||||||
no_index = DIFF_NO_INDEX_IMPLICIT;
|
no_index = DIFF_NO_INDEX_IMPLICIT;
|
||||||
|
}
|
||||||
|
|
||||||
if (!no_index)
|
if (!no_index)
|
||||||
gitmodules_config();
|
gitmodules_config();
|
||||||
|
|
Loading…
Reference in a new issue