Thread (24 messages) 24 messages, 3 authors, 2020-01-31

Re: [PATCH v2 09/11] bisect: libify `check_good_are_ancestors_of_bad` and its dependents

From: Christian Couder <hidden>
Date: 2020-01-31 09:16:14

Hi Dscho,

On Fri, Jan 31, 2020 at 10:07 AM Johannes Schindelin
[off-list ref] wrote:
On Thu, 30 Jan 2020, Christian Couder wrote:
quoted
On Thu, Jan 30, 2020 at 2:46 PM Johannes Schindelin
[off-list ref] wrote:
quoted
On Tue, 28 Jan 2020, Miriam Rubio wrote:
quoted
quoted
+             /* Create file BISECT_ANCESTORS_OK. */
+             fd = open(filename, O_CREAT | O_TRUNC | O_WRONLY, 0600);
+             if (fd < 0)
+                     warning_errno(_("could not create file '%s'"),
+                                   filename);
+             else
+                     close(fd);
+     }
I wonder whether this would be easier to read:

        if (res == -11)
                res = 0;
        else if (res)
                ; /* error out */
        else if ((fd = open(filename, O_CREAT | O_TRUNC | O_WRONLY, 0600)) < 0)
                res = warning_errno(_("could not create file '%s'"), filename);
        else
                close(fd);

Note: my code explicitly assigns `res = -1` if the file could not be
created, which is technically a change in behavior, but I think it is
actually a bug fix.
I don't think so. I think creating the BISECT_ANCESTORS_OK file is not
absolutely necessary. If it doesn't exist we will just check if
ancestors are ok again at the next bisection step, which will take a
bit of time, but which will not make us give any false result, or
prevent us from continuing the bisection process.

I think that it's also the reason why warning_errno(...) is used in
case we could not create the file instead of error_errno(...). We just
want to signal with a warning that something might be wrong because we
could not create the file, but not stop everything because of that.
Thank you for this explanation, it makes sense to me.

Maybe a code comment would be in order?
Yeah, I agree it would help.

Thanks for your review,
Christian.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help