(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"verbose commit template">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (AndOr children: [ (SimpleCommand words: [{(write_script)} {(DQ (check-for-diff))}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: {("grep '^diff --git' \"$1\" >out\n") ("exit 0\n")} do_expansion: False here_end: EOF was_filled: True spids: [20] ) ] ) (C {(test_set_editor)} {(DQ ($ VSub_Name "$PWD") (/check-for-diff))}) ] op_id: Op_DAmp ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(message)} spids:[36]) (HereDoc op_id: Redir_DLess fd: -1 body: {("subject\n") ("\n") ("body\n")} do_expansion: False here_end: EOF was_filled: True spids: [39] ) ] ) (C {(test_expect_success)} {(SQ <setup>)} { (SQ <"\n"> <"\techo content >file &&\n"> <"\tgit add file &&\n"> <"\tgit commit -F message\n">) } ) (C {(test_expect_success)} {(SQ <"initial commit shows verbose diff">)} {(SQ <"\n"> <"\tgit commit --amend -v &&\n"> <"\ttest_line_count = 1 out\n">)} ) (C {(test_expect_success)} {(SQ <"second commit">)} { (SQ <"\n"> <"\techo content modified >file &&\n"> <"\tgit add file &&\n"> <"\tgit commit -F message\n"> ) } ) (FuncDef name: check_message body: (BraceGroup children: [ (AndOr children: [ (SimpleCommand words: [ {(git)} {(log)} {(-1)} {(--pretty) (Lit_Other "=") (format) (Lit_Other ":") (Lit_Other "%") (s) (Lit_Other "%") (n) (Lit_Other "%") (n) (Lit_Other "%") (b) } ] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(actual)} spids:[112])] ) (C {(test_cmp)} {(DQ ($ VSub_Number "$1"))} {(actual)}) ] op_id: Op_DAmp ) ] spids: [90] ) spids: [86 89] ) (C {(test_expect_success)} {(SQ <"verbose diff is stripped out">)} { (SQ <"\n"> <"\tgit commit --amend -v &&\n"> <"\tcheck_message message &&\n"> <"\ttest_line_count = 1 out\n"> ) } ) (C {(test_expect_success)} {(SQ <"verbose diff is stripped out (mnemonicprefix)">)} { (SQ <"\n"> <"\tgit config diff.mnemonicprefix true &&\n"> <"\tgit commit --amend -v &&\n"> <"\tcheck_message message &&\n"> <"\ttest_line_count = 1 out\n"> ) } ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(diff)} spids:[160]) (HereDoc op_id: Redir_DLess fd: -1 body: {("This is an example commit message that contains a diff.\n") ("\n") ("diff --git c/file i/file\n") ("new file mode 100644\n") ("index 0000000..f95c11d\n") ("--- /dev/null\n") ("+++ i/file\n") ("@@ -0,0 +1 @@\n") ("+this is some content\n") } do_expansion: False here_end: EOF was_filled: True spids: [163] ) ] ) (C {(test_expect_success)} {(SQ <"diff in message is retained without -v">)} {(SQ <"\n"> <"\tgit commit --amend -F diff &&\n"> <"\tcheck_message diff\n">)} ) (C {(test_expect_success)} {(SQ <"diff in message is retained with -v">)} {(SQ <"\n"> <"\tgit commit --amend -F diff -v &&\n"> <"\tcheck_message diff\n">)} ) (C {(test_expect_success)} {(SQ <"submodule log is stripped out too with -v">)} { (SQ <"\n"> <"\tgit config diff.submodule log &&\n"> <"\tgit submodule add ./. sub &&\n"> <"\tgit commit -m \"sub added\" &&\n"> <"\t(\n"> <"\t\tcd sub &&\n"> <"\t\techo \"more\" >>file &&\n"> <"\t\tgit commit -a -m \"submodule commit\"\n"> <"\t) &&\n"> <"\t(\n"> <"\t\tGIT_EDITOR=cat &&\n"> <"\t\texport GIT_EDITOR &&\n"> <"\t\ttest_must_fail git commit -a -v 2>err\n"> <"\t) &&\n"> <"\ttest_i18ngrep \"Aborting commit due to empty commit message.\" err\n"> ) } ) (C {(test_expect_success)} {(SQ <"verbose diff is stripped out with set core.commentChar">)} { (SQ <"\n"> <"\t(\n"> <"\t\tGIT_EDITOR=cat &&\n"> <"\t\texport GIT_EDITOR &&\n"> <"\t\ttest_must_fail git -c core.commentchar=\";\" commit -a -v 2>err\n"> <"\t) &&\n"> <"\ttest_i18ngrep \"Aborting commit due to empty commit message.\" err\n"> ) } ) (C {(test_expect_success)} {(SQ <"status does not verbose without --verbose">)} {(SQ <"\n"> <"\tgit status >actual &&\n"> <"\t! grep \"^diff --git\" actual\n">)} ) (C {(test_expect_success)} {(SQ <"setup -v -v">)} {(SQ <"\n"> <"\techo dirty >file\n">)}) (ForEach iter_name: i iter_words: [{(true)} {(1)}] do_arg_iter: False body: (DoGroup children: [ (C {(test_expect_success)} {(DQ ("commit.verbose=") ($ VSub_Name "$i") (" and --verbose omitted"))} { (DQ ("\n") ("\t\tgit -c commit.verbose=") ($ VSub_Name "$i") (" commit --amend &&\n") ("\t\ttest_line_count = 1 out\n") ("\t") ) } ) ] spids: [272 292] ) spids: [267 -1] ) (ForEach iter_name: i iter_words: [{(false)} {(-2)} {(-1)} {(0)}] do_arg_iter: False body: (DoGroup children: [ (C {(test_expect_success)} {(DQ ("commit.verbose=") ($ VSub_Name "$i") (" and --verbose omitted"))} { (DQ ("\n") ("\t\tgit -c commit.verbose=") ($ VSub_Name "$i") (" commit --amend &&\n") ("\t\ttest_line_count = 0 out\n") ("\t") ) } ) ] spids: [309 329] ) spids: [300 -1] ) (ForEach iter_name: i iter_words: [{(2)} {(3)}] do_arg_iter: False body: (DoGroup children: [ (C {(test_expect_success)} {(DQ ("commit.verbose=") ($ VSub_Name "$i") (" and --verbose omitted"))} { (DQ ("\n") ("\t\tgit -c commit.verbose=") ($ VSub_Name "$i") (" commit --amend &&\n") ("\t\ttest_line_count = 2 out\n") ("\t") ) } ) ] spids: [342 362] ) spids: [337 -1] ) (ForEach iter_name: i iter_words: [{(true)} {(false)} {(-2)} {(-1)} {(0)} {(1)} {(2)} {(3)}] do_arg_iter: False body: (DoGroup children: [ (C {(test_expect_success)} {(DQ ("commit.verbose=") ($ VSub_Name "$i") (" and --verbose"))} { (DQ ("\n") ("\t\tgit -c commit.verbose=") ($ VSub_Name "$i") (" commit --amend --verbose &&\n") ("\t\ttest_line_count = 1 out\n") ("\t") ) } ) (C {(test_expect_success)} {(DQ ("commit.verbose=") ($ VSub_Name "$i") (" and --no-verbose"))} { (DQ ("\n") ("\t\tgit -c commit.verbose=") ($ VSub_Name "$i") (" commit --amend --no-verbose &&\n") ("\t\ttest_line_count = 0 out\n") ("\t") ) } ) (C {(test_expect_success)} {(DQ ("commit.verbose=") ($ VSub_Name "$i") (" and -v -v"))} { (DQ ("\n") ("\t\tgit -c commit.verbose=") ($ VSub_Name "$i") (" commit --amend -v -v &&\n") ("\t\ttest_line_count = 2 out\n") ("\t") ) } ) ] spids: [387 445] ) spids: [370 -1] ) (C {(test_expect_success)} {(DQ ("status ignores commit.verbose=true"))} { (SQ <"\n"> <"\tgit -c commit.verbose=true status >actual &&\n"> <"\t! grep \"^diff --git actual\"\n"> ) } ) (C {(test_done)}) ] )