Hi, El mar., 21 ene. 2020 a las 7:59, Christian Couder (<christian.couder@xxxxxxxxx>) escribió: > > 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. Ok. Noted. > > > 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. Ok. I will change that. > > > > The rest looks reasonable. Thank you, Great! Thank you for your review! > > Thank you for your review, > Christian.