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
|
||||
further add to the index but you still haven't. You can
|
||||
stage these changes by using linkgit:git-add[1].
|
||||
+
|
||||
If exactly two paths are given and at least one points outside
|
||||
the current repository, 'git diff' will compare the two files /
|
||||
directories. This behavior can be forced by --no-index.
|
||||
|
||||
'git diff' --no-index [--options] [--] [<path>...]::
|
||||
|
||||
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>...]::
|
||||
|
||||
|
@ -215,9 +215,21 @@ void diff_no_index(struct rev_info *revs,
|
||||
path_inside_repo(prefix, argv[i+1])))
|
||||
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>",
|
||||
no_index ? "--no-index" : "[--no-index]");
|
||||
}
|
||||
|
||||
diff_setup(&revs->diffopt);
|
||||
for (i = 1; i < argc - 2; ) {
|
||||
|
Loading…
Reference in New Issue
Block a user