diff options
author | Dale R. Worley <worley@alum.mit.edu> | 2013-08-22 16:31:21 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-08-22 13:55:28 -0700 |
commit | b214eddfb2d57e318a3f5b88da1cafcf19184b4d (patch) | |
tree | 35115dffbe71f776bcd0ff904309a09f90c10937 | |
parent | a3bc3d070cacf07dbe11b4bfec57554c8bbf1957 (diff) | |
download | git-b214eddfb2d57e318a3f5b88da1cafcf19184b4d.tar.gz |
diff --no-index: clarify operation when not inside a repository
Clarify documentation for "diff --no-index". State that when not
inside a repository, --no-index is implied and two arguments are
mandatory.
Clarify error message from diff-no-index to inform user that CWD is
not inside a repository and thus two arguments are mandatory.
Signed-off-by: Dale Worley <worley@ariadne.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | Documentation/git-diff.txt | 3 | ||||
-rw-r--r-- | diff-no-index.c | 14 |
2 files changed, 15 insertions, 2 deletions
diff --git a/Documentation/git-diff.txt b/Documentation/git-diff.txt index 78d6d50489..b1630ba2b7 100644 --- a/Documentation/git-diff.txt +++ b/Documentation/git-diff.txt @@ -31,7 +31,8 @@ two blob objects, or changes between two files on disk. + 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. +directories. This behavior can be forced by --no-index or by +executing 'git diff' outside of a working tree. 'git diff' [--options] --cached [<commit>] [--] [<path>...]:: diff --git a/diff-no-index.c b/diff-no-index.c index 74da659368..014d20a2bd 100644 --- a/diff-no-index.c +++ b/diff-no-index.c @@ -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; ) { |