Re: [PATCH] tag: add --edit option
- From
Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.de>
- Date
- Feb 1, 2018, 10:34 UTC
- Message-ID
- <fb3387f9-a341-c4dc-fa37-581229fb2c1d@suse.de>
- In-Reply-To
- <CAPig+cTFsp60KB+quuytW_nV2crLcjRV-PYN-3bO7tRY0_xu6w@mail.gmail.com>
Le 01/02/2018 à 11:16, Eric Sunshine a écrit :
Show 28 quoted lines
> On Thu, Feb 1, 2018 at 4:49 AM, Nicolas Morey-Chaisemartin
> <nmoreychaisemartin@suse.com> wrote:
>> Add a --edit option whichs allows modifying the messages provided by -m or -F,
>> the same way git commit --edit does.
>>
>> Signed-off-by: Nicolas Morey-Chaisemartin <NMoreyChaisemartin@suse.com>
>> ---
>> diff --git a/builtin/tag.c b/builtin/tag.c
>> @@ -224,7 +225,7 @@ static void create_tag(const struct object_id *object, const char *tag,
>> - if (!opt->message_given) {
>> + if (!opt->message_given || opt->use_editor) {
>>
>> - if (!is_null_oid(prev)) {
>> + if (opt->message_given) {
>> + write_or_die(fd, buf->buf, buf->len);
>> + strbuf_reset(buf);
>> + } else if (!is_null_oid(prev)) {
>> write_tag_body(fd, prev);
>> } else {
> A little below this change is where launch_editor() is actually
> invoked. If it fails for some reason, it prints:
>
> Please supply the message using either -m or -F option.
>
> which seems a bit counterintuitive if the user *did* specify one of
> those options along with --edit. I wonder if that message needs to be
> adjusted.
>Yes I'll fix this.
Show 21 quoted lines
>> diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh >> @@ -452,6 +452,23 @@ test_expect_success \ >> +get_tag_header annotated-tag-edit $commit commit $time >expect >> +echo "An edited message" >>expect >> +test_expect_success 'set up editor' ' >> + cat >editor <<-\EOF && >> + #!/bin/sh >> + sed -e "s/A message/An edited message/g" <"$1" >"$1-" >> + mv "$1-" "$1" >> + EOF >> + chmod 755 editor > If you use write_script() to create the fake editor, then it supplies > the #!/bin/sh line for you and does the 'chmod', so you only need to > supply the actual script payload. Also, other "editors" in this test > file are named "fakeeditor", so perhaps follow suit. > > write_script fakeeditor <<-\EOF > sed -e "s/A message/An edited message/g" <"$1" >"$1-" > mv "$1-" "$1" > EOF >
I dumbly copied the test from commit --edit as it was my reference. I'll fix the names and switch to write_script.
Thanks
Nicolas