git-commit-vandalism/t/t4013
Nguyễn Thái Ngọc Duy a2b7a3b3a9 diff: support --cached on unborn branches
"git diff --cached" (without revision) used to mean "git diff --cached
HEAD" (i.e. the user was too lazy to type HEAD). This "correctly"
failed when there was no commit yet. But was that correctness useful?

This patch changes the definition of what particular command means.
It is a request to show what _would_ be committed without further "git
add". The internal implementation is the same "git diff --cached HEAD"
when HEAD exists, but when there is no commit yet, it compares the index
with an empty tree object to achieve the desired result.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-07 15:04:30 -08:00
..
diff.config_format.subjectprefix_DIFFERENT_PREFIX
diff.diff_--abbrev_initial..side t4013: add "diff" UI program tests. 2006-07-01 22:02:17 -07:00
diff.diff_--cached diff: support --cached on unborn branches 2011-02-07 15:04:30 -08:00
diff.diff_--cached_--_file0 diff: support --cached on unborn branches 2011-02-07 15:04:30 -08:00
diff.diff_--dirstat_master~1_master~2 Test diff --dirstat functionality 2009-02-20 00:02:48 -08:00
diff.diff_--name-status_dir2_dir "git diff": do not ignore index without --no-index 2008-05-24 00:16:39 -07:00
diff.diff_--no-index_--name-status_--_dir2_dir diff: accept -- when using --no-index 2009-01-06 23:18:20 -08:00
diff.diff_--no-index_--name-status_dir2_dir "git diff": do not ignore index without --no-index 2008-05-24 00:16:39 -07:00
diff.diff_--no-index_dir_dir3 Skip timestamp differences for diff --no-index 2009-02-18 10:55:33 -08:00
diff.diff_--patch-with-raw_-r_initial..side
diff.diff_--patch-with-raw_initial..side t4013: add "diff" UI program tests. 2006-07-01 22:02:17 -07:00
diff.diff_--patch-with-stat_-r_initial..side
diff.diff_--patch-with-stat_initial..side t4013: add "diff" UI program tests. 2006-07-01 22:02:17 -07:00
diff.diff_--stat_initial..side
diff.diff_-r_--stat_initial..side
diff.diff_-r_initial..side
diff.diff_initial..side t4013: add "diff" UI program tests. 2006-07-01 22:02:17 -07:00
diff.diff_master_master^_side "git diff <tree>{3,}": do not reverse order of arguments 2008-10-12 12:36:19 -07:00
diff.diff-tree_--cc_--patch-with-stat_--summary_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.diff-tree_--cc_--patch-with-stat_--summary_side t4013: add more tests around -c and --cc 2006-06-26 23:29:11 -07:00
diff.diff-tree_--cc_--patch-with-stat_master
diff.diff-tree_--cc_--stat_--summary_master
diff.diff-tree_--cc_--stat_--summary_side t4013: add more tests around -c and --cc 2006-06-26 23:29:11 -07:00
diff.diff-tree_--cc_--stat_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.diff-tree_--cc_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.diff-tree_--patch-with-raw_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--patch-with-stat_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--pretty_--patch-with-raw_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--pretty_--patch-with-stat_initial
diff.diff-tree_--pretty_--patch-with-stat_side t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--pretty_--root_--patch-with-raw_initial
diff.diff-tree_--pretty_--root_--patch-with-stat_initial
diff.diff-tree_--pretty_--root_--stat_--summary_initial
diff.diff-tree_--pretty_--root_--stat_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--pretty_--root_--summary_-r_initial
diff.diff-tree_--pretty_--root_--summary_initial Turn on recursive with --summary 2006-10-05 15:10:40 -07:00
diff.diff-tree_--pretty_--root_-p_initial
diff.diff-tree_--pretty_--root_initial
diff.diff-tree_--pretty_--stat_--summary_initial
diff.diff-tree_--pretty_--stat_initial
diff.diff-tree_--pretty_--summary_initial
diff.diff-tree_--pretty_-p_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--pretty_-p_side
diff.diff-tree_--pretty_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--pretty_side
diff.diff-tree_--pretty=oneline_--patch-with-raw_initial
diff.diff-tree_--pretty=oneline_--patch-with-stat_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--pretty=oneline_--root_--patch-with-raw_initial
diff.diff-tree_--pretty=oneline_--root_--patch-with-stat_initial
diff.diff-tree_--pretty=oneline_--root_-p_initial
diff.diff-tree_--pretty=oneline_--root_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--pretty=oneline_-p_initial
diff.diff-tree_--pretty=oneline_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--root_--abbrev_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--root_--patch-with-raw_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--root_--patch-with-stat_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--root_-p_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--root_-r_--abbrev_initial
diff.diff-tree_--root_-r_--abbrev=4_initial
diff.diff-tree_--root_-r_initial
diff.diff-tree_--root_initial
diff.diff-tree_-c_--abbrev_master
diff.diff-tree_-c_--stat_--summary_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.diff-tree_-c_--stat_--summary_side t4013: add more tests around -c and --cc 2006-06-26 23:29:11 -07:00
diff.diff-tree_-c_--stat_master
diff.diff-tree_-c_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.diff-tree_-p_-m_master
diff.diff-tree_-p_initial
diff.diff-tree_-p_master t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_-r_--abbrev_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_-r_--abbrev=4_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_-r_initial
diff.diff-tree_initial
diff.diff-tree_master
diff.format-patch_--attach_--stdout_--suffix=.diff_initial..side format-patch: --attach/inline uses filename instead of SHA1 2009-03-22 21:45:19 -07:00
diff.format-patch_--attach_--stdout_initial..master format-patch: --attach/inline uses filename instead of SHA1 2009-03-22 21:45:19 -07:00
diff.format-patch_--attach_--stdout_initial..master^ format-patch: --attach/inline uses filename instead of SHA1 2009-03-22 21:45:19 -07:00
diff.format-patch_--attach_--stdout_initial..side format-patch: --attach/inline uses filename instead of SHA1 2009-03-22 21:45:19 -07:00
diff.format-patch_--inline_--stdout_--numbered-files_initial..master format-patch: --numbered-files and --stdout aren't mutually exclusive 2009-03-22 21:46:02 -07:00
diff.format-patch_--inline_--stdout_--subject-prefix=TESTCASE_initial..master format-patch: --attach/inline uses filename instead of SHA1 2009-03-22 21:45:19 -07:00
diff.format-patch_--inline_--stdout_initial..master format-patch: --attach/inline uses filename instead of SHA1 2009-03-22 21:45:19 -07:00
diff.format-patch_--inline_--stdout_initial..master^ format-patch: --attach/inline uses filename instead of SHA1 2009-03-22 21:45:19 -07:00
diff.format-patch_--inline_--stdout_initial..master^^ format-patch: --attach/inline uses filename instead of SHA1 2009-03-22 21:45:19 -07:00
diff.format-patch_--inline_--stdout_initial..side format-patch: --attach/inline uses filename instead of SHA1 2009-03-22 21:45:19 -07:00
diff.format-patch_--stdout_--cover-letter_-n_initial..master^ format-patch: Add a signature option (--signature) 2010-06-16 10:08:59 -07:00
diff.format-patch_--stdout_--no-numbered_initial..master format-patch: autonumber by default 2008-10-18 07:18:03 -07:00
diff.format-patch_--stdout_--numbered_initial..master format-patch: autonumber by default 2008-10-18 07:18:03 -07:00
diff.format-patch_--stdout_initial..master format-patch: autonumber by default 2008-10-18 07:18:03 -07:00
diff.format-patch_--stdout_initial..master^ format-patch: autonumber by default 2008-10-18 07:18:03 -07:00
diff.format-patch_--stdout_initial..side
diff.log_--decorate_--all Let --decorate show HEAD position 2009-10-12 16:22:35 -07:00
diff.log_--decorate=full_--all Let --decorate show HEAD position 2009-10-12 16:22:35 -07:00
diff.log_--patch-with-stat_--summary_master_--_dir_ log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.log_--patch-with-stat_master log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.log_--patch-with-stat_master_--_dir_ log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.log_--root_--cc_--patch-with-stat_--summary_master log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.log_--root_--patch-with-stat_--summary_master log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.log_--root_--patch-with-stat_master log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.log_--root_-c_--patch-with-stat_--summary_master log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.log_--root_-p_master log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.log_--root_master log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.log_-GF_-p_--pickaxe-all_master diff/log -G<pattern>: tests 2010-08-31 14:30:29 -07:00
diff.log_-GF_-p_master diff/log -G<pattern>: tests 2010-08-31 14:30:29 -07:00
diff.log_-GF_master diff/log -G<pattern>: tests 2010-08-31 14:30:29 -07:00
diff.log_-m_-p_--first-parent_master t4013: add tests for log -p -m --first-parent 2010-03-09 01:11:18 -08:00
diff.log_-m_-p_master t4013: add tests for log -p -m --first-parent 2010-03-09 01:11:18 -08:00
diff.log_-p_--first-parent_master t4013: add tests for log -p -m --first-parent 2010-03-09 01:11:18 -08:00
diff.log_-p_master log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.log_-S_F_master diff: parse separate options like -S foo 2010-08-06 09:14:22 -07:00
diff.log_-SF_-p_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.log_-SF_master
diff.log_master log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.rev-list_--children_HEAD Test rev-list --parents/--children 2009-02-20 00:02:48 -08:00
diff.rev-list_--parents_HEAD Test rev-list --parents/--children 2009-02-20 00:02:48 -08:00
diff.show_--first-parent_master show --first-parent/-m: do not default to --cc 2010-03-09 01:11:19 -08:00
diff.show_--patch-with-raw_side t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.show_--patch-with-stat_--summary_side t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.show_--patch-with-stat_side t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.show_--root_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.show_--stat_--summary_side
diff.show_--stat_side
diff.show_-c_master show -c: show patch text 2010-03-09 01:11:18 -08:00
diff.show_-m_master show --first-parent/-m: do not default to --cc 2010-03-09 01:11:19 -08:00
diff.show_initial
diff.show_master log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.show_side
diff.whatchanged_--patch-with-stat_--summary_master_--_dir_ t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.whatchanged_--patch-with-stat_master
diff.whatchanged_--patch-with-stat_master_--_dir_
diff.whatchanged_--root_--cc_--patch-with-stat_--summary_master log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.whatchanged_--root_--patch-with-stat_--summary_master
diff.whatchanged_--root_--patch-with-stat_master
diff.whatchanged_--root_-c_--patch-with-stat_--summary_master log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.whatchanged_--root_-p_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.whatchanged_--root_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.whatchanged_-p_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.whatchanged_-SF_-p_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.whatchanged_-SF_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.whatchanged_master