Re: [PATCH 3/3] commit: add an option the reword HEAD

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Eric

On 21/09/2020 16:43, Eric Sunshine wrote:
On Mon, Sep 21, 2020 at 9:31 AM Phillip Wood via GitGitGadget
<gitgitgadget@xxxxxxxxx> wrote:
+--reword::
+       Reword the commit message of the tip of the current branch by
+       replacing it with a new commit. The commit contents will be
+       unchanged even if there are staged changes. This is equivalent
+       to specifying `--amend --only --allow-empty` with no paths.
diff --git a/builtin/commit.c b/builtin/commit.c
@@ -1152,6 +1153,41 @@ static void finalize_deferred_config(struct wt_status *s)
+static void validate_reword_options(int argc, struct commit *current_head)
+{
+       if (amend)
+               die(_("cannot combine --reword with --amend"));
+       if (only)
+               die(_("cannot combine --reword with --only"));

Nit: It feels a bit odd (though not outright wrong) to disallow
--reword in combination with --amend and --only after the
documentation states that --reword is equivalent to using those
options.

Yeah I decided to be quite strict, I'm in two minds about the documentation, I think it might be better to remove that line.

diff --git a/t/t7501-commit-basic-functionality.sh b/t/t7501-commit-basic-functionality.sh
@@ -713,4 +713,60 @@ test_expect_success '--dry-run --short' '
+test_reword_opt () {
+       test_expect_success C_LOCALE_OUTPUT "--reword incompatible with $1" "
+               echo 'fatal: cannot combine --reword with $1' >expect &&
+               test_must_fail git commit --reword $1 2>actual &&
+               test_cmp expect actual
+       "
+}

These error messages are subject to localization, so you'd want to use
test_i18ncmp() here, I think.

Same comment for other new tests.

I decided to use the C_LOCALE_OUTPUT prerequisite and test_cmp rather than grep so I could check the exact output. I'm slightly suspicious of tests that just grep for an error message when that is all we should be showing. I should probably check that nothing is printed to stdout in these tests

Best Wishes

Phillip




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux