diff*: fix worktree setup
commit4f38f6b5bafb1f7f85c7b54d0bb0a0e977cd947c
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Thu, 28 Aug 2008 13:02:12 +0000 (28 20:02 +0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 29 Aug 2008 03:50:10 +0000 (28 20:50 -0700)
tree899a49f15362f957cf67c71b23f9435e5600ebf6
parentc67b1fa349cc7b4341b32b9ef1c58a3821ce0830
diff*: fix worktree setup

This fixes "git diff", "git diff-files" and "git diff-index" to work
correctly under worktree setup. Because diff* family works in many modes
and not all of them require worktree, Junio made a nice summary
(with a little modification from me):

 * diff-files is about comparing with work tree, so it obviously needs a
  work tree;

 * diff-index also does, except "diff-index --cached" or "diff --cached TREE"

 * no-index is about random files outside git context, so it obviously
   doesn't need any work tree;

 * comparing two (or more) trees doesn't;

 * comparing two blobs doesn't;

 * comparing a blob with a random file doesn't;

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-diff-index.c
builtin-diff.c
git.c
t/t1501-worktree.sh