threads / patch / 48779

patchsequencer: print an error message if append_todo_help() fails

Subject: [GSoC][PATCH 0/1] sequencer: print an error message if append_todo_help() fails

## tl;dr

5 messages between Jun 26, 2018 and Jun 26, 2018. Diffs are folded; open one to read it.

replies: 4people: 3as markdown or json

Alban Gruin· Jun 26, 2018, 10:04 UTC · lore

Currently, append_todo_help() does not warn the user if an error occurs when trying to write to the todo file. This patch addresses this problem.

This patch is based on ag/rebase-i-append-todo-help.
Alban Gruin (1):
  sequencer: print an error message if append_todo_help() fails
 sequencer.c | 3 +++
 1 file changed, 3 insertions(+)
-- 
2.18.0
Alban Gruin· Jun 26, 2018, 10:04 UTC · re: Alban Gruin · lore

[GSoC][PATCH 1/1] sequencer: print an error message if append_todo_help() fails

This adds an error when append_todo_help() fails to write its message to the todo file.

Signed-off-by: Alban Gruin <alban.gruin@gmail.com>
---
 sequencer.c | 3 +++
 1 file changed, 3 insertions(+)
Show changes to sequencer.c +3 −0
diff --git a/sequencer.c b/sequencer.c
index 7cc76332e..7c4bdbb99 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -4380,6 +4380,9 @@ int append_todo_help(unsigned edit_todo, unsigned keep_empty)
 	}
 
 	ret = fputs(buf.buf, todo);
+	if (ret)
+		error_errno(_("Could not append help text to '%s'"), rebase_path_todo());
+
 	fclose(todo);
 	strbuf_release(&buf);
 
-- 
2.18.0
Johannes Schindelin· Jun 26, 2018, 12:57 UTC · re: Alban Gruin · lore

Re: [GSoC][PATCH 1/1] sequencer: print an error message if append_todo_help() fails

Hi Alban,
On Tue, 26 Jun 2018, Alban Gruin wrote:
> This adds an error when append_todo_help() fails to write its message to
> the todo file.
> 
> Signed-off-by: Alban Gruin <alban.gruin@gmail.com>
ACK.

We *may* want to fold that into the commit that adds `append_todo_help()`. And, as I mentioned previously, I would love for that function to be used as an excuse to introduce the long-overdue `interactive-rebase.c` (`sequencer.c` is supposed to be the backend for cherry-pick and revert and interactive rebase, but not a catch-all for *all* of those things, it is already way too long to be readable, and I take blame for a large part of that.)

Ciao, Dscho

Junio C Hamano· Jun 26, 2018, 19:53 UTC · re: Johannes Schindelin · lore

Re: [GSoC][PATCH 1/1] sequencer: print an error message if append_todo_help() fails

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 12 quoted lines
> Hi Alban,
>
> On Tue, 26 Jun 2018, Alban Gruin wrote:
>
>> This adds an error when append_todo_help() fails to write its message to
>> the todo file.
>> 
>> Signed-off-by: Alban Gruin <alban.gruin@gmail.com>
>
> ACK.
>
> We *may* want to fold that into the commit that adds `append_todo_help()`.

Absolutely. This looks more like an "oops, I made a mess and here is a fix on top", and even worse, it does not make an effort to help readers where the mess was made (iow, which commit it goes on to of); it is better to be squashed in.

I do not know offhand who Alban's mentors are, but one thing I think is a good thing for them to teach is how to better organize the changes with readers in mind. The author of a patch series knows his or her patches and how they relate to each other a lot better than the readers of patches, who are reading not just his or her patches but the ones from a lot wider set of contributors. Even though append-todo-help and edit-todo may have been developed as separate steps in author's mind, it is criminal to send them as if they are completely separate topics that can independently applied, especially when one depends on the other. It is a lot more helpful to the readers if they were sent as a larger single series, because doing so _will_ tell the readers which order the dependency goes.

> And, as I mentioned previously, I would love for that function to be used
> as an excuse to introduce the long-overdue `interactive-rebase.c`
I am not sure if I like this direction.  

As newbies are often very bad at coming up with APIs and naming global functions, keeping everything as "static" inside a single sequencer.c tends to avoid contaminating the global namespace.

Johannes Schindelin· Jun 26, 2018, 21:52 UTC · re: Junio C Hamano · lore

Re: [GSoC][PATCH 1/1] sequencer: print an error message if append_todo_help() fails

Hi Junio,
On Tue, 26 Jun 2018, Junio C Hamano wrote:
Show 30 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> > On Tue, 26 Jun 2018, Alban Gruin wrote:
> >
> >> This adds an error when append_todo_help() fails to write its message to
> >> the todo file.
> >> 
> >> Signed-off-by: Alban Gruin <alban.gruin@gmail.com>
> >
> > ACK.
> >
> > We *may* want to fold that into the commit that adds `append_todo_help()`.
> 
> Absolutely.  This looks more like an "oops, I made a mess and here
> is a fix on top", and even worse, it does not make an effort to help
> readers where the mess was made (iow, which commit it goes on to
> of); it is better to be squashed in.
> 
> I do not know offhand who Alban's mentors are, but one thing I think
> is a good thing for them to teach is how to better organize the
> changes with readers in mind.  The author of a patch series knows
> his or her patches and how they relate to each other a lot better
> than the readers of patches, who are reading not just his or her
> patches but the ones from a lot wider set of contributors.  Even
> though append-todo-help and edit-todo may have been developed as
> separate steps in author's mind, it is criminal to send them as if
> they are completely separate topics that can independently applied,
> especially when one depends on the other.  It is a lot more helpful
> to the readers if they were sent as a larger single series, because
> doing so _will_ tell the readers which order the dependency goes.

Chris & Stefan are Alban's mentors, and I spend quite a bit of my time on IRC, ready to help Alban when he has questions. Chris & Stephan mainly act as first-line reviewers.

> > And, as I mentioned previously, I would love for that function to be
> > used as an excuse to introduce the long-overdue `interactive-rebase.c`
> 
> I am not sure if I like this direction.

Blame me, not Alban. I am pretty familiar with sequencer.c, and I know that it is way too large.

> As newbies are often very bad at coming up with APIs and naming global
> functions, keeping everything as "static" inside a single sequencer.c
> tends to avoid contaminating the global namespace.

Then I just need to make sure to suggest good names that are safe for the global namespace, don't I?

Seeing as sequencer.c is so long already, it is own little mega namespace anyway, so we already have to be very careful *within* sequencer.c.

Ciao, Dscho

← back to recent threads