git/t/t4013
Matthieu Moy dea007fb4c diff: parse separate options like -S foo
Change the option parsing logic in revision.c to accept separate forms
like `-S foo' in addition to `-Sfoo'. The rest of git already accepted
this form, but revision.c still used its own option parsing.

Short options affected are -S<string>, -l<num> and -O<orderfile>, for
which an empty string wouldn't make sense, hence -<option> <arg> isn't
ambiguous.

This patch does not handle --stat-name-width and --stat-width, which are
special-cases where diff_long_opt do not apply. They are handled in a
separate patch to ease review.

Original patch by Matthieu Moy, plus refactoring by Jonathan Nieder.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-06 09:14:22 -07: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_--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_-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