Merge branch 'dw/diff-no-index-doc'
When the user types "git diff" outside a working tree, thinking he is inside one, the current error message that is a single-liner "usage: git diff --no-index <path> <path>" may not be sufficient to make him realize the mistake. Add "Not a git repository" to the error message when we fell into the "--no-index" mode without an explicit command line option to instruct us to do so. * dw/diff-no-index-doc: diff --no-index: describe in a separate paragraph diff --no-index: clarify operation when not inside a repository
This commit is contained in:
commit
cd8c891b74
@ -28,10 +28,15 @@ two blob objects, or changes between two files on disk.
|
|||||||
words, the differences are what you _could_ tell Git to
|
words, the differences are what you _could_ tell Git to
|
||||||
further add to the index but you still haven't. You can
|
further add to the index but you still haven't. You can
|
||||||
stage these changes by using linkgit:git-add[1].
|
stage these changes by using linkgit:git-add[1].
|
||||||
+
|
|
||||||
If exactly two paths are given and at least one points outside
|
'git diff' --no-index [--options] [--] [<path>...]::
|
||||||
the current repository, 'git diff' will compare the two files /
|
|
||||||
directories. This behavior can be forced by --no-index.
|
This form is to compare the given two paths on the
|
||||||
|
filesystem. You can omit the `--no-index` option when
|
||||||
|
running the command in a working tree controlled by Git and
|
||||||
|
at least one of the paths points outside the working tree,
|
||||||
|
or when running the command outside a working tree
|
||||||
|
controlled by Git.
|
||||||
|
|
||||||
'git diff' [--options] --cached [<commit>] [--] [<path>...]::
|
'git diff' [--options] --cached [<commit>] [--] [<path>...]::
|
||||||
|
|
||||||
|
@ -215,9 +215,21 @@ void diff_no_index(struct rev_info *revs,
|
|||||||
path_inside_repo(prefix, argv[i+1])))
|
path_inside_repo(prefix, argv[i+1])))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (argc != i + 2)
|
if (argc != i + 2) {
|
||||||
|
if (!no_index) {
|
||||||
|
/*
|
||||||
|
* There was no --no-index and there were not two
|
||||||
|
* paths. It is possible that the user intended
|
||||||
|
* to do an inside-repository operation.
|
||||||
|
*/
|
||||||
|
fprintf(stderr, "Not a git repository\n");
|
||||||
|
fprintf(stderr,
|
||||||
|
"To compare two paths outside a working tree:\n");
|
||||||
|
}
|
||||||
|
/* Give the usage message for non-repository usage and exit. */
|
||||||
usagef("git diff %s <path> <path>",
|
usagef("git diff %s <path> <path>",
|
||||||
no_index ? "--no-index" : "[--no-index]");
|
no_index ? "--no-index" : "[--no-index]");
|
||||||
|
}
|
||||||
|
|
||||||
diff_setup(&revs->diffopt);
|
diff_setup(&revs->diffopt);
|
||||||
for (i = 1; i < argc - 2; ) {
|
for (i = 1; i < argc - 2; ) {
|
||||||
|
Loading…
Reference in New Issue
Block a user