{"thread":{"id":"25210","subject":"[PATCHv3 3/4] commit: --squash option for use with rebase --autosquash","startedAt":"2010-09-23T16:23:13Z","lastAt":"2010-09-23T16:44:52Z","messageCount":8,"participants":["Pat Notz","Ævar Arnfjörð Bjarmason"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"151363","messageId":"1285258997-12497-1-git-send-email-patnotz@gmail.com","threadId":"25210","inReplyTo":null,"subject":"[PATCHv3 0/4] Add commit message options for rebase --autosquash","fromName":"Pat Notz","fromEmail":"patnotz@gmail.com","sentAt":"2010-09-23T16:23:13Z","receivedAt":"2010-09-23T16:23:13Z","isPatch":false,"sender":{"key":"patnotz@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45364?v=4"},"body":"This patch series adds new command line options to git-commit to make\nit easy to specify messages for commits correctly formatted for use\nwit 'rebase -i --autosquash'.\n\nThe 2nd iteration addressed concerns raised earlier:\nhttp://thread.gmane.org/gmane.comp.version-control.git/156369 .  Most\nnotably, --squash=COMMIT now works with -m/-c/-C/-F and uses the\neditor when appropriate.\n\nThis 3rd iteration adds documentation links from --squash and --fixup\nto git-rebase(1) and updates the tests to conform to established style\n(editor script moved into t7500/ directory).\n\nPat Notz (4):\n  commit: --fixup option for use with rebase --autosquash\n  t7500: add tests of commit --fixup\n  commit: --squash option for use with rebase --autosquash\n  t7500: add tests of commit --squash\n\n Documentation/git-commit.txt |   21 +++++++++--\n builtin/commit.c             |   58 +++++++++++++++++++++++++++---\n t/t7500-commit.sh            |   80 ++++++++++++++++++++++++++++++++++++++++++\n t/t7500/edit-content         |    4 ++\n 4 files changed, 154 insertions(+), 9 deletions(-)\n create mode 100755 t/t7500/edit-content\n\n-- \n1.7.3\n"},{"id":"151364","messageId":"1285258997-12497-2-git-send-email-patnotz@gmail.com","threadId":"25210","inReplyTo":"1285258997-12497-1-git-send-email-patnotz@gmail.com","subject":"[PATCHv3 1/4] commit: --fixup option for use with rebase --autosquash","fromName":"Pat Notz","fromEmail":"patnotz@gmail.com","sentAt":"2010-09-23T16:23:14Z","receivedAt":"2010-09-23T16:23:14Z","isPatch":false,"sender":{"key":"patnotz@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45364?v=4"},"body":"This option makes it convenient to construct commit messages for use\nwith 'rebase --autosquash'.  The resulting commit message will be\n\"fixup! ...\" where \"...\" is the subject line of the specified commit\nmessage.\n\nExample usage:\n  $ git commit --fixup HEAD~2\n\nSigned-off-by: Pat Notz <patnotz@gmail.com>\n---\n Documentation/git-commit.txt |   14 ++++++++++----\n builtin/commit.c             |   23 +++++++++++++++++++----\n 2 files changed, 29 insertions(+), 8 deletions(-)\n\ndiff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt\nindex 42fb1f5..f4a2b8c 100644\n--- a/Documentation/git-commit.txt\n+++ b/Documentation/git-commit.txt\n@@ -9,10 +9,10 @@ SYNOPSIS\n --------\n [verse]\n 'git commit' [-a | --interactive] [-s] [-v] [-u<mode>] [--amend] [--dry-run]\n-\t   [(-c | -C) <commit>] [-F <file> | -m <msg>] [--reset-author]\n-\t   [--allow-empty] [--allow-empty-message] [--no-verify] [-e] [--author=<author>]\n-\t   [--date=<date>] [--cleanup=<mode>] [--status | --no-status] [--]\n-\t   [[-i | -o ]<file>...]\n+\t   [(-c | -C | --fixup) <commit>] [-F <file> | -m <msg>]\n+\t   [--reset-author] [--allow-empty] [--allow-empty-message] [--no-verify]\n+\t   [-e] [--author=<author>] [--date=<date>] [--cleanup=<mode>]\n+\t   [--status | --no-status] [--] [[-i | -o ]<file>...]\n \n DESCRIPTION\n -----------\n@@ -70,6 +70,12 @@ OPTIONS\n \tLike '-C', but with '-c' the editor is invoked, so that\n \tthe user can further edit the commit message.\n \n+--fixup=<commit>::\n+\tConstruct a commit message for use with `rebase --autosquash`.\n+\tThe commit message will be the subject line from the specified\n+\tcommit with a prefix of \"fixup! \".  See linkgit:git-rebase[1]\n+\tfor details.\n+\n --reset-author::\n \tWhen used with -C/-c/--amend options, declare that the\n \tauthorship of the resulting commit now belongs of the committer.\ndiff --git a/builtin/commit.c b/builtin/commit.c\nindex 66fdd22..0901616 100644\n--- a/builtin/commit.c\n+++ b/builtin/commit.c\n@@ -69,6 +69,7 @@ static enum {\n static const char *logfile, *force_author;\n static const char *template_file;\n static char *edit_message, *use_message;\n+static char *fixup_message;\n static char *author_name, *author_email, *author_date;\n static int all, edit_flag, also, interactive, only, amend, signoff;\n static int quiet, verbose, no_verify, allow_empty, dry_run, renew_authorship;\n@@ -124,6 +125,7 @@ static struct option builtin_commit_options[] = {\n \tOPT_CALLBACK('m', \"message\", &message, \"MESSAGE\", \"specify commit message\", opt_parse_m),\n \tOPT_STRING('c', \"reedit-message\", &edit_message, \"COMMIT\", \"reuse and edit message from specified commit\"),\n \tOPT_STRING('C', \"reuse-message\", &use_message, \"COMMIT\", \"reuse message from specified commit\"),\n+\tOPT_STRING(0, \"fixup\", &fixup_message, \"COMMIT\", \"use autosquash formatted message to fixup specified commit\"),\n \tOPT_BOOLEAN(0, \"reset-author\", &renew_authorship, \"the commit is authored by me now (used with -C-c/--amend)\"),\n \tOPT_BOOLEAN('s', \"signoff\", &signoff, \"add Signed-off-by:\"),\n \tOPT_FILENAME('t', \"template\", &template_file, \"use specified template file\"),\n@@ -586,6 +588,17 @@ static int prepare_to_commit(const char *index_file, const char *prefix,\n \t\tstrbuf_add(&sb, buffer + 2, strlen(buffer + 2));\n \t\thook_arg1 = \"commit\";\n \t\thook_arg2 = use_message;\n+\t} else if (fixup_message) {\n+\t\tunsigned char sha1[20];\n+\t\tstruct commit *commit;\n+\t\tstruct pretty_print_context ctx = {0};\n+\t\tif (get_sha1(fixup_message, sha1))\n+\t\t\tdie(\"could not lookup commit %s\", fixup_message);\n+\t\tcommit = lookup_commit_reference(sha1);\n+\t\tif (!commit || parse_commit(commit))\n+\t\t\tdie(\"could not parse commit %s\", fixup_message);\n+\t\tformat_commit_message(commit, \"fixup! %s\\n\\n\", &sb, &ctx);\n+\t\thook_arg1 = \"message\";\n \t} else if (!stat(git_path(\"MERGE_MSG\"), &statbuf)) {\n \t\tif (strbuf_read_file(&sb, git_path(\"MERGE_MSG\"), 0) < 0)\n \t\t\tdie_errno(\"could not read MERGE_MSG\");\n@@ -863,7 +876,7 @@ static int parse_and_validate_options(int argc, const char *argv[],\n \tif (force_author && renew_authorship)\n \t\tdie(\"Using both --reset-author and --author does not make sense\");\n \n-\tif (logfile || message.len || use_message)\n+\tif (logfile || message.len || use_message || fixup_message)\n \t\tuse_editor = 0;\n \tif (edit_flag)\n \t\tuse_editor = 1;\n@@ -883,15 +896,17 @@ static int parse_and_validate_options(int argc, const char *argv[],\n \t\tf++;\n \tif (edit_message)\n \t\tf++;\n+\tif (fixup_message)\n+\t\tf++;\n \tif (logfile)\n \t\tf++;\n \tif (f > 1)\n-\t\tdie(\"Only one of -c/-C/-F can be used.\");\n+\t\tdie(\"Only one of -c/-C/-F/--fixup can be used.\");\n \tif (message.len && f > 0)\n-\t\tdie(\"Option -m cannot be combined with -c/-C/-F.\");\n+\t\tdie(\"Option -m cannot be combined with -c/-C/-F/--fixup.\");\n \tif (edit_message)\n \t\tuse_message = edit_message;\n-\tif (amend && !use_message)\n+\tif (amend && !use_message && !fixup_message)\n \t\tuse_message = \"HEAD\";\n \tif (!use_message && renew_authorship)\n \t\tdie(\"--reset-author can be used only with -C, -c or --amend.\");\n-- \n1.7.3\n"},{"id":"151366","messageId":"1285258997-12497-3-git-send-email-patnotz@gmail.com","threadId":"25210","inReplyTo":"1285258997-12497-1-git-send-email-patnotz@gmail.com","subject":"[PATCHv3 2/4] t7500: add tests of commit --fixup","fromName":"Pat Notz","fromEmail":"patnotz@gmail.com","sentAt":"2010-09-23T16:23:15Z","receivedAt":"2010-09-23T16:23:15Z","isPatch":false,"sender":{"key":"patnotz@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45364?v=4"},"body":"Signed-off-by: Pat Notz <patnotz@gmail.com>\n---\n t/t7500-commit.sh |   33 +++++++++++++++++++++++++++++++++\n 1 files changed, 33 insertions(+), 0 deletions(-)\n\ndiff --git a/t/t7500-commit.sh b/t/t7500-commit.sh\nindex aa9c577..7656ed4 100755\n--- a/t/t7500-commit.sh\n+++ b/t/t7500-commit.sh\n@@ -215,4 +215,37 @@ test_expect_success 'Commit a message with --allow-empty-message' '\n \tcommit_msg_is \"hello there\"\n '\n \n+commit_for_rebase_autosquash_setup() {\n+\techo \"first content for testing commit messages for rebase --autosquash\" >>foo &&\n+\tgit add foo &&\n+\tcat >log <<EOF\n+target message subject line\n+\n+target message body line 1\n+target message body line 2\n+EOF\n+\tgit commit -F log &&\n+\techo \"second content for testing commit messages for rebase --autosquash\" >>foo &&\n+\tgit add foo &&\n+\tgit commit -m \"intermediate commit\" &&\n+\techo \"third content for testing commit messages for rebase --autosquash\" >>foo &&\n+\tgit add foo\n+}\n+\n+test_expect_success 'commit --fixup provides correct one-line commit message' '\n+\tcommit_for_rebase_autosquash_setup &&\n+\tgit commit --fixup HEAD~1 &&\n+\tcommit_msg_is \"fixup! target message subject line\"\n+'\n+\n+test_expect_success 'invalid message options when using --fixup' '\n+\techo changes >>foo &&\n+\techo \"message\" >log &&\n+\tgit add foo &&\n+\ttest_must_fail git commit --fixup HEAD~1 --C HEAD~2 &&\n+\ttest_must_fail git commit --fixup HEAD~1 --c HEAD~2 &&\n+\ttest_must_fail git commit --fixup HEAD~1 -m \"cmdline message\" &&\n+\ttest_must_fail git commit --fixup HEAD~1 -F log\n+'\n+\n test_done\n-- \n1.7.3\n"},{"id":"151362","messageId":"1285258997-12497-4-git-send-email-patnotz@gmail.com","threadId":"25210","inReplyTo":"1285258997-12497-1-git-send-email-patnotz@gmail.com","subject":"[PATCHv3 3/4] commit: --squash option for use with rebase --autosquash","fromName":"Pat Notz","fromEmail":"patnotz@gmail.com","sentAt":"2010-09-23T16:23:16Z","receivedAt":"2010-09-23T16:23:16Z","isPatch":false,"sender":{"key":"patnotz@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45364?v=4"},"body":"This option makes it convenient to construct commit messages for use\nwith 'rebase --autosquash'.  The resulting commit message will be\n\"squash! ...\" where \"...\" is the subject line of the specified commit\nmessage.  This option can be used with other commit message options\nsuch as -m, -c, -C and -F.\n\nIf an editor is invoked (as with -c or -eF or no message options) the\ncommit message is seeded with the correctly formatted subject line.\n\nExample usage:\n  $ git commit --squash HEAD~2\n  $ git commit --squash HEAD~2 -m \"clever comment\"\n  $ git commit --squash HEAD~2 -F msgfile\n  $ git commit --squash HEAD~2 -C deadbeef\n\nSigned-off-by: Pat Notz <patnotz@gmail.com>\n---\n Documentation/git-commit.txt |    9 ++++++++-\n builtin/commit.c             |   37 +++++++++++++++++++++++++++++++++++--\n 2 files changed, 43 insertions(+), 3 deletions(-)\n\ndiff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt\nindex f4a2b8c..6e4c220 100644\n--- a/Documentation/git-commit.txt\n+++ b/Documentation/git-commit.txt\n@@ -9,7 +9,7 @@ SYNOPSIS\n --------\n [verse]\n 'git commit' [-a | --interactive] [-s] [-v] [-u<mode>] [--amend] [--dry-run]\n-\t   [(-c | -C | --fixup) <commit>] [-F <file> | -m <msg>]\n+\t   [(-c | -C | --fixup | --squash) <commit>] [-F <file> | -m <msg>]\n \t   [--reset-author] [--allow-empty] [--allow-empty-message] [--no-verify]\n \t   [-e] [--author=<author>] [--date=<date>] [--cleanup=<mode>]\n \t   [--status | --no-status] [--] [[-i | -o ]<file>...]\n@@ -76,6 +76,13 @@ OPTIONS\n \tcommit with a prefix of \"fixup! \".  See linkgit:git-rebase[1]\n \tfor details.\n \n+--squash=<commit>::\n+\tConstruct a commit message for use with `rebase --autosquash`.\n+\tThe commit message subject line is taken from the specified\n+\tcommit with a prefix of \"squash! \".  Can be used with additional\n+\tcommit message options (`-m`/`-c`/`-C`/`-F`). See\n+\tlinkgit:git-rebase[1] for details.\n+\n --reset-author::\n \tWhen used with -C/-c/--amend options, declare that the\n \tauthorship of the resulting commit now belongs of the committer.\ndiff --git a/builtin/commit.c b/builtin/commit.c\nindex 0901616..d28b2ff 100644\n--- a/builtin/commit.c\n+++ b/builtin/commit.c\n@@ -69,7 +69,7 @@ static enum {\n static const char *logfile, *force_author;\n static const char *template_file;\n static char *edit_message, *use_message;\n-static char *fixup_message;\n+static char *fixup_message, *squash_message;\n static char *author_name, *author_email, *author_date;\n static int all, edit_flag, also, interactive, only, amend, signoff;\n static int quiet, verbose, no_verify, allow_empty, dry_run, renew_authorship;\n@@ -126,6 +126,7 @@ static struct option builtin_commit_options[] = {\n \tOPT_STRING('c', \"reedit-message\", &edit_message, \"COMMIT\", \"reuse and edit message from specified commit\"),\n \tOPT_STRING('C', \"reuse-message\", &use_message, \"COMMIT\", \"reuse message from specified commit\"),\n \tOPT_STRING(0, \"fixup\", &fixup_message, \"COMMIT\", \"use autosquash formatted message to fixup specified commit\"),\n+\tOPT_STRING(0, \"squash\", &squash_message, \"COMMIT\", \"use autosquash formatted message to squash specified commit\"),\n \tOPT_BOOLEAN(0, \"reset-author\", &renew_authorship, \"the commit is authored by me now (used with -C-c/--amend)\"),\n \tOPT_BOOLEAN('s', \"signoff\", &signoff, \"add Signed-off-by:\"),\n \tOPT_FILENAME('t', \"template\", &template_file, \"use specified template file\"),\n@@ -567,6 +568,27 @@ static int prepare_to_commit(const char *index_file, const char *prefix,\n \tif (!no_verify && run_hook(index_file, \"pre-commit\", NULL))\n \t\treturn 0;\n \n+\tif (squash_message) {\n+\t\t/*\n+\t\t * Insert the proper subject line before other commit\n+\t\t * message options add their content.\n+\t\t */\n+\t\tunsigned char sha1[20];\n+\t\tstruct commit *commit;\n+\t\tstruct pretty_print_context ctx = {0};\n+\n+\t\tif (get_sha1(squash_message, sha1))\n+\t\t\tdie(\"could not lookup commit %s\", squash_message);\n+\t\tcommit = lookup_commit_reference(sha1);\n+\t\tif (!commit || parse_commit(commit))\n+\t\t\tdie(\"could not parse commit %s\", squash_message);\n+\n+\t\tif(use_message && strcmp(use_message, squash_message) == 0)\n+\t\t\tstrbuf_addstr(&sb,\"squash! \");\n+\t\telse\n+\t\t\tformat_commit_message(commit, \"squash! %s\\n\\n\", &sb, &ctx);\n+\t}\n+\n \tif (message.len) {\n \t\tstrbuf_addbuf(&sb, &message);\n \t\thook_arg1 = \"message\";\n@@ -620,6 +642,16 @@ static int prepare_to_commit(const char *index_file, const char *prefix,\n \telse if (in_merge)\n \t\thook_arg1 = \"merge\";\n \n+\tif (squash_message) {\n+\t\t/*\n+\t\t * If squash_commit was used for the commit subject,\n+\t\t * then we're possibly hijacking other commit log options.\n+\t\t * Reset the hook args to tell the real story.\n+\t\t */\n+\t\thook_arg1 = \"message\";\n+\t\thook_arg2 = \"\";\n+\t}\n+\n \tfp = fopen(git_path(commit_editmsg), \"w\");\n \tif (fp == NULL)\n \t\tdie_errno(\"could not open '%s'\", git_path(commit_editmsg));\n@@ -891,7 +923,8 @@ static int parse_and_validate_options(int argc, const char *argv[],\n \t\tdie(\"You have nothing to amend.\");\n \tif (amend && in_merge)\n \t\tdie(\"You are in the middle of a merge -- cannot amend.\");\n-\n+\tif (fixup_message && squash_message)\n+\t\tdie(\"Options --squash and --fixup cannot be used together\");\n \tif (use_message)\n \t\tf++;\n \tif (edit_message)\n-- \n1.7.3\n"},{"id":"151365","messageId":"1285258997-12497-5-git-send-email-patnotz@gmail.com","threadId":"25210","inReplyTo":"1285258997-12497-1-git-send-email-patnotz@gmail.com","subject":"[PATCHv3 4/4] t7500: add tests of commit --squash","fromName":"Pat Notz","fromEmail":"patnotz@gmail.com","sentAt":"2010-09-23T16:23:17Z","receivedAt":"2010-09-23T16:23:17Z","isPatch":false,"sender":{"key":"patnotz@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45364?v=4"},"body":"Signed-off-by: Pat Notz <patnotz@gmail.com>\n---\n t/t7500-commit.sh    |   47 +++++++++++++++++++++++++++++++++++++++++++++++\n t/t7500/edit-content |    4 ++++\n 2 files changed, 51 insertions(+), 0 deletions(-)\n create mode 100755 t/t7500/edit-content\n\ndiff --git a/t/t7500-commit.sh b/t/t7500-commit.sh\nindex 7656ed4..0f746d5 100755\n--- a/t/t7500-commit.sh\n+++ b/t/t7500-commit.sh\n@@ -238,10 +238,57 @@ test_expect_success 'commit --fixup provides correct one-line commit message' '\n \tcommit_msg_is \"fixup! target message subject line\"\n '\n \n+test_expect_success 'commit --squash works with -F' '\n+\tcommit_for_rebase_autosquash_setup &&\n+\techo \"log message from file\" >msgfile\n+\tgit commit --squash HEAD~1 -F msgfile  &&\n+\tcommit_msg_is \"squash! target message subject linelog message from file\"\n+'\n+\n+test_expect_success 'commit --squash works with -m' '\n+\tcommit_for_rebase_autosquash_setup &&\n+\tgit commit --squash HEAD~1 -m \"foo bar\\nbaz\" &&\n+\tcommit_msg_is \"squash! target message subject linefoo bar\\nbaz\"\n+'\n+\n+test_expect_success 'commit --squash works with -C' '\n+\tcommit_for_rebase_autosquash_setup &&\n+\tgit commit --squash HEAD~1 -C HEAD &&\n+\tcommit_msg_is \"squash! target message subject lineintermediate commit\"\n+'\n+\n+test_expect_success 'commit --squash works with -c' '\n+\tcommit_for_rebase_autosquash_setup &&\n+\ttest_set_editor \"$TEST_DIRECTORY\"/t7500/edit-content &&\n+\tgit commit --squash HEAD~1 -c HEAD &&\n+\tcommit_msg_is \"squash! target message subject lineedited commit\"\n+'\n+\n+test_expect_success 'commit --squash works with -C for same commit' '\n+\tcommit_for_rebase_autosquash_setup &&\n+\tgit commit --squash HEAD -C HEAD &&\n+\tcommit_msg_is \"squash! intermediate commit\"\n+'\n+\n+test_expect_success 'commit --squash works with -c for same commit' '\n+\tcommit_for_rebase_autosquash_setup &&\n+\ttest_set_editor \"$TEST_DIRECTORY\"/t7500/edit-content &&\n+\tgit commit --squash HEAD -c HEAD &&\n+\tcommit_msg_is \"squash! edited commit\"\n+'\n+\n+test_expect_success 'commit --squash works with editor' '\n+\tcommit_for_rebase_autosquash_setup &&\n+\ttest_set_editor \"$TEST_DIRECTORY\"/t7500/add-content &&\n+\tgit commit --squash HEAD~1 &&\n+\tcommit_msg_is \"squash! target message subject linecommit message\"\n+'\n+\n test_expect_success 'invalid message options when using --fixup' '\n \techo changes >>foo &&\n \techo \"message\" >log &&\n \tgit add foo &&\n+\ttest_must_fail git commit --fixup HEAD~1 --squash HEAD~2 &&\n \ttest_must_fail git commit --fixup HEAD~1 --C HEAD~2 &&\n \ttest_must_fail git commit --fixup HEAD~1 --c HEAD~2 &&\n \ttest_must_fail git commit --fixup HEAD~1 -m \"cmdline message\" &&\ndiff --git a/t/t7500/edit-content b/t/t7500/edit-content\nnew file mode 100755\nindex 0000000..08db9fd\n--- /dev/null\n+++ b/t/t7500/edit-content\n@@ -0,0 +1,4 @@\n+#!/bin/sh\n+sed -e \"s/intermediate/edited/g\" <\"$1\" >\"$1-\"\n+mv \"$1-\" \"$1\"\n+exit 0\n-- \n1.7.3\n"},{"id":"151367","messageId":"AANLkTikQArcz5ENo6veWEgEhmasCscNJ6J4wiyw+gSTj@mail.gmail.com","threadId":"25210","inReplyTo":"1285258997-12497-3-git-send-email-patnotz@gmail.com","subject":"Re: [PATCHv3 2/4] t7500: add tests of commit --fixup","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2010-09-23T16:32:40Z","receivedAt":"2010-09-23T16:32:40Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"On Thu, Sep 23, 2010 at 16:23, Pat Notz <patnotz@gmail.com> wrote:\n\n> +commit_for_rebase_autosquash_setup() {\n> +       echo \"first content for testing commit messages for rebase --autosquash\" >>foo &&\n> +       git add foo &&\n> +       cat >log <<EOF\n\nMissing &&\n"},{"id":"151368","messageId":"AANLkTim=i3UqVTo7_OTr+qCW3JdMLugVBG84M6h9ZXM5@mail.gmail.com","threadId":"25210","inReplyTo":"1285258997-12497-5-git-send-email-patnotz@gmail.com","subject":"Re: [PATCHv3 4/4] t7500: add tests of commit --squash","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2010-09-23T16:34:11Z","receivedAt":"2010-09-23T16:34:11Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"On Thu, Sep 23, 2010 at 16:23, Pat Notz <patnotz@gmail.com> wrote:\n\n> +test_expect_success 'commit --squash works with -F' '\n> +       commit_for_rebase_autosquash_setup &&\n> +       echo \"log message from file\" >msgfile\n\nMissing &&\n"},{"id":"151369","messageId":"AANLkTikWzo85QoSCPWHCw4ncf=Ut0GWmnB+6cLcDVCeo@mail.gmail.com","threadId":"25210","inReplyTo":"AANLkTim=i3UqVTo7_OTr+qCW3JdMLugVBG84M6h9ZXM5@mail.gmail.com","subject":"Re: [PATCHv3 4/4] t7500: add tests of commit --squash","fromName":"Pat Notz","fromEmail":"patnotz@gmail.com","sentAt":"2010-09-23T16:44:52Z","receivedAt":"2010-09-23T16:44:52Z","isPatch":false,"sender":{"key":"patnotz@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45364?v=4"},"body":"On Thu, Sep 23, 2010 at 10:34 AM, Ævar Arnfjörð Bjarmason\n<avarab@gmail.com> wrote:\n> On Thu, Sep 23, 2010 at 16:23, Pat Notz <patnotz@gmail.com> wrote:\n>\n>> +test_expect_success 'commit --squash works with -F' '\n>> +       commit_for_rebase_autosquash_setup &&\n>> +       echo \"log message from file\" >msgfile\n>\n> Missing &&\n>\n\nWow, great eyes (on both tests).  v4 shortly.\n"}]}