mbox series

[v3,00/12] Finish converting git bisect to C part 2

Message ID 20200423070704.39872-1-mirucam@gmail.com (mailing list archive)
Headers show
Series Finish converting git bisect to C part 2 | expand

Message

Miriam R. April 23, 2020, 7:06 a.m. UTC
These patches correspond to a second part of patch series 
of Outreachy project "Finish converting `git bisect` from shell to C" 
started by Pranit Bauva and Tanushree Tumane
(https://public-inbox.org/git/pull.117.git.gitgitgadget@gmail.com) and
continued by me.

These patch series emails were generated from:
https://gitlab.com/mirucam/git/commits/git-bisect-work-part2-v3.

I would like to thank Junio Hamano for reviewing this patch series and
Christian Couder for his help.

--- Changes since v2 Finish converting git bisect to C part 2 patch series ---

General changes
---------------

* Rebase on master branch: efe3874640 (Sync with v2.26.1, 2020-04-13)

Specific changes
----------------

[1/12] bisect--helper: fix `cmd_*()` function switch default return

* Use `BUG()` instead of `return error()` in default switch.

--

[2/12] bisect--helper: use '-res' in 'cmd_bisect__helper' return

* New patch: use '-res' instead of 'abs(res)'.

--

[3/12] bisect--helper: introduce new `write_in_file()` function

* Rename input parameter `filepath` to `path`.
* Change `error_errno()` to `error()` in mode checking.
* Change error message when file cannot be opened.
* Add `fclose()` before error return.

--

[4/12] bisect--helper: reimplement `bisect_autostart` shell function in C

* Reorder patch before `reimplement `bisect_next` and `bisect_auto_next`
shell functions in C` to use `bisect_autostart()` function in 
`bisect_append_log_quoted()`.

--
`
[5/12] bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell
functions in C

* Amend commit message.
* Add `clear_commit_marks()` at the end of bisect_next_all() and remove it from 
`bisect_rev_setup()`.
* Fix if condition.
* Add `bisect_autostart()` in `bisect_append_log_quoted()`.
* Check `git_path_bisect_head()` with `file_exist()` instead of 
`is_empty_or_missing_file()`.
* Fix return with BISECT_INTERNAL_SUCCESS_1ST_BAD_FOUND.
* Add conversion in `cmd_*()` to BISECT_OK when return is 
BISECT_INTERNAL_SUCCESS_1ST_BAD_FOUND.

* Note to previous reviewer: suggestion to change `bisect_auto_next()` function
to return void cannot be done because errors from `bisect_next()` are not 
ignored.

--

[5/12] bisect--helper: reimplement `bisect_state` & `bisect_head` shell
functions in C

* Check `git_path_bisect_head()` with `file_exist()` instead of 
`is_empty_or_missing_file()`.

--

Miriam Rubio (3):
  bisect--helper: fix `cmd_*()` function switch default return
  bisect--helper: use '-res' in 'cmd_bisect__helper' return
  bisect--helper: introduce new `write_in_file()` function

Pranit Bauva (9):
  bisect--helper: reimplement `bisect_autostart` shell function in C
  bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell
    functions in C
  bisect--helper: finish porting `bisect_start()` to C
  bisect--helper: retire `--bisect-clean-state` subcommand
  bisect--helper: retire `--next-all` subcommand
  bisect--helper: reimplement `bisect_state` & `bisect_head` shell
    functions in C
  bisect--helper: retire `--check-expected-revs` subcommand
  bisect--helper: retire `--write-terms` subcommand
  bisect--helper: retire `--bisect-autostart` subcommand

 bisect.c                 |   8 +
 builtin/bisect--helper.c | 383 +++++++++++++++++++++++++++++++++------
 git-bisect.sh            | 145 +--------------
 3 files changed, 347 insertions(+), 189 deletions(-)

Comments

Junio C Hamano April 23, 2020, 8:01 p.m. UTC | #1
Miriam Rubio <mirucam@gmail.com> writes:

> --- Changes since v2 Finish converting git bisect to C part 2 patch series ---
>
> General changes
> ---------------
>
> * Rebase on master branch: efe3874640 (Sync with v2.26.1, 2020-04-13)

Was there a particular reason why you needed to do this rebase?  It
seems that the patches apply cleanly on the same base as v2 has been
queued?  Does the result cause hard-to-resolve conflicts when merged
to the 'master', 'next' or 'pu' branches unless you do that rebase?

> Specific changes
> ----------------
>
> [1/12] bisect--helper: fix `cmd_*()` function switch default return
>
> * Use `BUG()` instead of `return error()` in default switch.

This rings a bell.  range-diff looks good.

> [2/12] bisect--helper: use '-res' in 'cmd_bisect__helper' return
>
> * New patch: use '-res' instead of 'abs(res)'.

Alright.

> [3/12] bisect--helper: introduce new `write_in_file()` function
>
> * Rename input parameter `filepath` to `path`.
> * Change `error_errno()` to `error()` in mode checking.
> * Change error message when file cannot be opened.
> * Add `fclose()` before error return.

OK.  I am not sure if the error behaviour when fclose() fails is
ideal, but I do not think it is worth further polishing.

> [4/12] bisect--helper: reimplement `bisect_autostart` shell function in C
>
> * Reorder patch before `reimplement `bisect_next` and `bisect_auto_next`
> shell functions in C` to use `bisect_autostart()` function in 
> `bisect_append_log_quoted()`.

OK.

Will take a look at individual patches later.

Thanks.
Miriam R. April 25, 2020, 10:57 a.m. UTC | #2
Hi Junio,

El jue., 23 abr. 2020 a las 22:01, Junio C Hamano
(<gitster@pobox.com>) escribió:
>
> Miriam Rubio <mirucam@gmail.com> writes:
>
> > --- Changes since v2 Finish converting git bisect to C part 2 patch series ---
> >
> > General changes
> > ---------------
> >
> > * Rebase on master branch: efe3874640 (Sync with v2.26.1, 2020-04-13)
>
> Was there a particular reason why you needed to do this rebase?  It
> seems that the patches apply cleanly on the same base as v2 has been
> queued?  Does the result cause hard-to-resolve conflicts when merged
> to the 'master', 'next' or 'pu' branches unless you do that rebase?
>
No particular reason. I use to do a rebase on master before applying
reviewers suggestions if I see there are new commits on master.

> > Specific changes
> > ----------------
> >
> > [1/12] bisect--helper: fix `cmd_*()` function switch default return
> >
> > * Use `BUG()` instead of `return error()` in default switch.
>
> This rings a bell.  range-diff looks good.
>
> > [2/12] bisect--helper: use '-res' in 'cmd_bisect__helper' return
> >
> > * New patch: use '-res' instead of 'abs(res)'.
>
> Alright.
>
> > [3/12] bisect--helper: introduce new `write_in_file()` function
> >
> > * Rename input parameter `filepath` to `path`.
> > * Change `error_errno()` to `error()` in mode checking.
> > * Change error message when file cannot be opened.
> > * Add `fclose()` before error return.
>
> OK.  I am not sure if the error behaviour when fclose() fails is
> ideal, but I do not think it is worth further polishing.
>
> > [4/12] bisect--helper: reimplement `bisect_autostart` shell function in C
> >
> > * Reorder patch before `reimplement `bisect_next` and `bisect_auto_next`
> > shell functions in C` to use `bisect_autostart()` function in
> > `bisect_append_log_quoted()`.
>
> OK.
>
> Will take a look at individual patches later.
Great, thank you!
>
> Thanks.
Johannes Schindelin May 22, 2020, 10:09 p.m. UTC | #3
Hi Miriam,

On Thu, 23 Apr 2020, Miriam Rubio wrote:

> These patches correspond to a second part of patch series
> of Outreachy project "Finish converting `git bisect` from shell to C"
> started by Pranit Bauva and Tanushree Tumane
> (https://public-inbox.org/git/pull.117.git.gitgitgadget@gmail.com) and
> continued by me.
>
> These patch series emails were generated from:
> https://gitlab.com/mirucam/git/commits/git-bisect-work-part2-v3.
>
> I would like to thank Junio Hamano for reviewing this patch series and
> Christian Couder for his help.
>
> --- Changes since v2 Finish converting git bisect to C part 2 patch series ---

Thank you for this detailed summary!

I reviewed the patches in their entirety, and left a couple of
suggestions, some of them minor.

Hopefully you find them helpful!

Ciao,
Dscho

>
> General changes
> ---------------
>
> * Rebase on master branch: efe3874640 (Sync with v2.26.1, 2020-04-13)
>
> Specific changes
> ----------------
>
> [1/12] bisect--helper: fix `cmd_*()` function switch default return
>
> * Use `BUG()` instead of `return error()` in default switch.
>
> --
>
> [2/12] bisect--helper: use '-res' in 'cmd_bisect__helper' return
>
> * New patch: use '-res' instead of 'abs(res)'.
>
> --
>
> [3/12] bisect--helper: introduce new `write_in_file()` function
>
> * Rename input parameter `filepath` to `path`.
> * Change `error_errno()` to `error()` in mode checking.
> * Change error message when file cannot be opened.
> * Add `fclose()` before error return.
>
> --
>
> [4/12] bisect--helper: reimplement `bisect_autostart` shell function in C
>
> * Reorder patch before `reimplement `bisect_next` and `bisect_auto_next`
> shell functions in C` to use `bisect_autostart()` function in
> `bisect_append_log_quoted()`.
>
> --
> `
> [5/12] bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell
> functions in C
>
> * Amend commit message.
> * Add `clear_commit_marks()` at the end of bisect_next_all() and remove it from
> `bisect_rev_setup()`.
> * Fix if condition.
> * Add `bisect_autostart()` in `bisect_append_log_quoted()`.
> * Check `git_path_bisect_head()` with `file_exist()` instead of
> `is_empty_or_missing_file()`.
> * Fix return with BISECT_INTERNAL_SUCCESS_1ST_BAD_FOUND.
> * Add conversion in `cmd_*()` to BISECT_OK when return is
> BISECT_INTERNAL_SUCCESS_1ST_BAD_FOUND.
>
> * Note to previous reviewer: suggestion to change `bisect_auto_next()` function
> to return void cannot be done because errors from `bisect_next()` are not
> ignored.
>
> --
>
> [5/12] bisect--helper: reimplement `bisect_state` & `bisect_head` shell
> functions in C
>
> * Check `git_path_bisect_head()` with `file_exist()` instead of
> `is_empty_or_missing_file()`.
>
> --
>
> Miriam Rubio (3):
>   bisect--helper: fix `cmd_*()` function switch default return
>   bisect--helper: use '-res' in 'cmd_bisect__helper' return
>   bisect--helper: introduce new `write_in_file()` function
>
> Pranit Bauva (9):
>   bisect--helper: reimplement `bisect_autostart` shell function in C
>   bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell
>     functions in C
>   bisect--helper: finish porting `bisect_start()` to C
>   bisect--helper: retire `--bisect-clean-state` subcommand
>   bisect--helper: retire `--next-all` subcommand
>   bisect--helper: reimplement `bisect_state` & `bisect_head` shell
>     functions in C
>   bisect--helper: retire `--check-expected-revs` subcommand
>   bisect--helper: retire `--write-terms` subcommand
>   bisect--helper: retire `--bisect-autostart` subcommand
>
>  bisect.c                 |   8 +
>  builtin/bisect--helper.c | 383 +++++++++++++++++++++++++++++++++------
>  git-bisect.sh            | 145 +--------------
>  3 files changed, 347 insertions(+), 189 deletions(-)
>
> --
> 2.25.0
>
>
Miriam R. May 24, 2020, 9:19 p.m. UTC | #4
Hi Johannes,

El sáb., 23 may. 2020 a las 0:09, Johannes Schindelin
(<Johannes.Schindelin@gmx.de>) escribió:
>
> Hi Miriam,
>
> On Thu, 23 Apr 2020, Miriam Rubio wrote:
>
> > These patches correspond to a second part of patch series
> > of Outreachy project "Finish converting `git bisect` from shell to C"
> > started by Pranit Bauva and Tanushree Tumane
> > (https://public-inbox.org/git/pull.117.git.gitgitgadget@gmail.com) and
> > continued by me.
> >
> > These patch series emails were generated from:
> > https://gitlab.com/mirucam/git/commits/git-bisect-work-part2-v3.
> >
> > I would like to thank Junio Hamano for reviewing this patch series and
> > Christian Couder for his help.
> >
> > --- Changes since v2 Finish converting git bisect to C part 2 patch series ---
>
> Thank you for this detailed summary!
>
> I reviewed the patches in their entirety, and left a couple of
> suggestions, some of them minor.
>
Thank you very much for reviewing.

> Hopefully you find them helpful!
Of course! :)

I hope I can send the next version soon.

Best,
Miriam
>
> Ciao,
> Dscho
>
> >
> > General changes
> > ---------------
> >
> > * Rebase on master branch: efe3874640 (Sync with v2.26.1, 2020-04-13)
> >
> > Specific changes
> > ----------------
> >
> > [1/12] bisect--helper: fix `cmd_*()` function switch default return
> >
> > * Use `BUG()` instead of `return error()` in default switch.
> >
> > --
> >
> > [2/12] bisect--helper: use '-res' in 'cmd_bisect__helper' return
> >
> > * New patch: use '-res' instead of 'abs(res)'.
> >
> > --
> >
> > [3/12] bisect--helper: introduce new `write_in_file()` function
> >
> > * Rename input parameter `filepath` to `path`.
> > * Change `error_errno()` to `error()` in mode checking.
> > * Change error message when file cannot be opened.
> > * Add `fclose()` before error return.
> >
> > --
> >
> > [4/12] bisect--helper: reimplement `bisect_autostart` shell function in C
> >
> > * Reorder patch before `reimplement `bisect_next` and `bisect_auto_next`
> > shell functions in C` to use `bisect_autostart()` function in
> > `bisect_append_log_quoted()`.
> >
> > --
> > `
> > [5/12] bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell
> > functions in C
> >
> > * Amend commit message.
> > * Add `clear_commit_marks()` at the end of bisect_next_all() and remove it from
> > `bisect_rev_setup()`.
> > * Fix if condition.
> > * Add `bisect_autostart()` in `bisect_append_log_quoted()`.
> > * Check `git_path_bisect_head()` with `file_exist()` instead of
> > `is_empty_or_missing_file()`.
> > * Fix return with BISECT_INTERNAL_SUCCESS_1ST_BAD_FOUND.
> > * Add conversion in `cmd_*()` to BISECT_OK when return is
> > BISECT_INTERNAL_SUCCESS_1ST_BAD_FOUND.
> >
> > * Note to previous reviewer: suggestion to change `bisect_auto_next()` function
> > to return void cannot be done because errors from `bisect_next()` are not
> > ignored.
> >
> > --
> >
> > [5/12] bisect--helper: reimplement `bisect_state` & `bisect_head` shell
> > functions in C
> >
> > * Check `git_path_bisect_head()` with `file_exist()` instead of
> > `is_empty_or_missing_file()`.
> >
> > --
> >
> > Miriam Rubio (3):
> >   bisect--helper: fix `cmd_*()` function switch default return
> >   bisect--helper: use '-res' in 'cmd_bisect__helper' return
> >   bisect--helper: introduce new `write_in_file()` function
> >
> > Pranit Bauva (9):
> >   bisect--helper: reimplement `bisect_autostart` shell function in C
> >   bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell
> >     functions in C
> >   bisect--helper: finish porting `bisect_start()` to C
> >   bisect--helper: retire `--bisect-clean-state` subcommand
> >   bisect--helper: retire `--next-all` subcommand
> >   bisect--helper: reimplement `bisect_state` & `bisect_head` shell
> >     functions in C
> >   bisect--helper: retire `--check-expected-revs` subcommand
> >   bisect--helper: retire `--write-terms` subcommand
> >   bisect--helper: retire `--bisect-autostart` subcommand
> >
> >  bisect.c                 |   8 +
> >  builtin/bisect--helper.c | 383 +++++++++++++++++++++++++++++++++------
> >  git-bisect.sh            | 145 +--------------
> >  3 files changed, 347 insertions(+), 189 deletions(-)
> >
> > --
> > 2.25.0
> >
> >