On Mon, Jan 20, 2020 at 11:20 PM Johannes Schindelin <Johannes.Schindelin@xxxxxx> wrote: > > On Mon, 20 Jan 2020, Miriam Rubio wrote: > > @@ -876,8 +877,15 @@ static void check_good_are_ancestors_of_bad(struct repository *r, > > int fd, rev_nr, res = 0; > > struct commit **rev; > > > > - if (!current_bad_oid) > > - die(_("a %s revision is needed"), term_bad); > > + /* > > + * We don't want to clean the bisection state > > + * as we need to get back to where we started > > + * by using `git bisect reset`. > > + */ > > + if (!current_bad_oid) { > > + res = error(_("a %s revision is needed"), term_bad); > > + goto done; > > + } > > Why not just return here? Ah, there is a `filename` that was allocated... > it is too bad that we have a mailing-list based review, as the hunk > context simply cannot be extended in a mail. > > Personally, I think it would be nicer to split the definition of > `filename` from its declaration and move it _after_ this conditional code, > so that we can `return` right away. Yeah, I agree. > However, there is a more pressing issue than that: `die()` exits with exit > code 128, so in keeping with the idea to hand down negative exit codes as > return values, should we not assign `res = -128` here? I think it has been ok when converting git-bisect.sh to C to just convert `die(...)` into `return error(...)`. > > /* Check if file BISECT_ANCESTORS_OK exists. */ > > if (!stat(filename, &st) && S_ISREG(st.st_mode)) > > @@ -893,18 +901,20 @@ static void check_good_are_ancestors_of_bad(struct repository *r, > > if (check_ancestors(r, rev_nr, rev, prefix)) > > res = check_merge_bases(rev_nr, rev, no_checkout); > > free(rev); > > - if(res) > > - exit(res == -11 ? 0 : -res); > > - > > - /* 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); > > + > > + if (!res) > > + { > > We usually put the `{` on the same line as the `if` condition (like you > did in the `if (!current_bad_oid)` line above. > > The rest looks reasonable. Thank you, Thank you for your review, Christian.