git/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 format-patch: Add format.subjectprefix config option 2007-07-02 21:05:45 -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 t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.diff-tree_--cc_--stat_--summary_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
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=oneline_--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=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 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-stat_initial t4013 test updates for new output code. 2006-06-27 15:36:19 -07:00
diff.diff-tree_--pretty=oneline_--root_-p_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
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 t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
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_--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 t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
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 t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--pretty_--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_--pretty_--root_--stat_--summary_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
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 t4013: note improvements brought by the new output code. 2006-06-29 12:07:27 -07:00
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 t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--pretty_--root_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--pretty_--stat_--summary_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--pretty_--stat_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--pretty_--summary_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
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 t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
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 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=4_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 t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--root_-r_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_--root_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_-c_--abbrev_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
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 t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.diff-tree_-c_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.diff-tree_-p_-m_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.diff-tree_-p_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
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=4_initial 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_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_initial t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.diff-tree_master t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
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 t4013: add "diff" UI program tests. 2006-07-01 22:02:17 -07:00
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 t4013: add "diff" UI program tests. 2006-07-01 22:02:17 -07:00
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 t4013: add "diff" UI program tests. 2006-07-01 22:02:17 -07:00
diff.diff_-r_--stat_initial..side t4013: add "diff" UI program tests. 2006-07-01 22:02:17 -07:00
diff.diff_-r_initial..side t4013: add "diff" UI program tests. 2006-07-01 22:02:17 -07:00
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.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 Add --summary to git-format-patch by default 2007-01-17 23:48:20 -08:00
diff.log_--decorate=full_--all Let --decorate show HEAD position 2009-10-12 16:22:35 -07:00
diff.log_--decorate_--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 Clean up "git log" format with DIFF_FORMAT_NO_OUTPUT 2007-10-15 20:24:27 -04:00
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 t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.show_--stat_side t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
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 t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
diff.show_master log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
diff.show_side t4013: add tests for diff/log family output options. 2006-06-26 14:36:40 -07:00
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 t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.whatchanged_--patch-with-stat_master_--_dir_ t4013 diff format tests update 2006-07-13 21:40:43 -07:00
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 t4013 diff format tests update 2006-07-13 21:40:43 -07:00
diff.whatchanged_--root_--patch-with-stat_master t4013 diff format tests update 2006-07-13 21:40:43 -07:00
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 t4013 diff format tests update 2006-07-13 21:40:43 -07:00