git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v14 5/8] bisect: introduce --no-checkout support into porcelain.

From
Jon Seymour <jon.seymour@gmail.com>
Date
Aug 3, 2011, 13:16 UTC
Message-ID
<CAH3AnrrtfhU1r1DWO8ski5Jd=cLXcj3Wq-MowB8QKv+r1-BT_A@mail.gmail.com>
In-Reply-To
<7vk4avcsk9.fsf@alter.siamese.dyndns.org>
On Wed, Aug 3, 2011 at 9:16 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 36 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
>
>> Jon Seymour <jon.seymour@gmail.com> writes:
>> ...
>>> +            if test "$BISECT_MODE" = "--no-checkout"; then
>>> +                git update-ref --no-deref HEAD "$start_head"
>>> +            else
>>> +                git checkout "$start_head" --
>>> +            fi
>>
>> Just a minor worry but I would not be surprised if somebody's "test"
>> implementation barfs upon:
>>
>>       test "--no-checkout" = "--no-checkout"
>>
>> mistaking the string with a dash at the beginning as an option unknown to
>> it. That is why we often have "z$variable" in our comparison, like so:
>>
>>       if test "z$BISECT_MODE" = "z--no-checkout"
>>         then
>>               git update-ref --no-deref BISECT_HEAD "$start_head"
>>       else
>>               git checkout "$start_head" --
>>       fi
>>
>>> -    git rev-parse --sq-quote "$@" >"$GIT_DIR/BISECT_NAMES" &&
>>> +    git rev-parse --sq-quote "$@" >"$GIT_DIR/BISECT_NAMES"
>>> +    echo "$BISECT_MODE" > "$GIT_DIR/BISECT_MODE" &&
>>
>> &&?
>
> Having said that, other than these minor nits, I think this round is
> almost ready. I didn't check how it behaves upon "bisect reset",
> though. It shouldn't touch the index, HEAD nor the working tree (it
> probably is just the matter of "update-ref -d BISECT_HEAD" and nothing
> else, but I haven't thought things through thoroughly).

That seems reasonable. In fact, none of these series properly cleaned up the reset state properly, so I'll fix that and a test for it.

Show 9 quoted lines
>
> Further polishing we may want to do while it is still in pu/next I can
> think of off the top of my head are:
>
>  - In this mode, I can bisect the history even inside a bare repository,
>   as the whole point of --no-checkout is that the mode does not require a
>   working tree. I however suspect "git bisect" requires working tree. Is
>   this something we want to fix?
>

I agree, that would be useful. Haven't tried it yet but I'll see what happens.I may issue changes for this as separate commit that can be squashed later, if required, once it has been reviewed.

BTW: I'll squash v14 8/8 into the other commits, per Christian's suggestion.
>  - Further, perhaps should we default to this mode inside a bare
>   repository?
Seems reasonable.
jon.
Previous: Christian CouderNext: Jon Seymour
Message 10 of 20 in “bisect: Add support for --no-checkout option”
  1. 0/8 bisect: Add support for --no-checkout optionJon Seymour, Aug 2, 2011
  2. 1/8 bisect: move argument parsing before state modification.Jon Seymour, Aug 2, 2011
  3. 2/8 bisect: use && to connect statements that are deferred with eval.Jon Seymour, Aug 2, 2011
  4. 3/8 bisect: add tests to document expected behaviour in presence of broken trees.Jon Seymour, Aug 2, 2011
  5. 4/8 bisect: introduce support for --no-checkout option.Jon Seymour, Aug 2, 2011
  6. 5/8 bisect: introduce --no-checkout support into porcelain.Jon Seymour, Aug 2, 2011
  7. Junio C HamanoAug 2, 2011
  8. Junio C HamanoAug 2, 2011
  9. Christian CouderAug 3, 2011
  10. Jon SeymourAug 3, 2011
  11. Jon SeymourAug 3, 2011
  12. Junio C HamanoAug 3, 2011
  13. Jonathan NiederAug 3, 2011
  14. Jon SeymourAug 3, 2011
  15. Jonathan NiederAug 3, 2011
  16. Christian CouderAug 3, 2011
  17. 6/8 bisect: add tests for the --no-checkout option.Jon Seymour, Aug 2, 2011
  18. 7/8 bisect: add documentation for --no-checkout option.Jon Seymour, Aug 2, 2011
  19. 8/8 bisect: change bisect function to update BISECT_HEAD, rather than HEAD.Jon Seymour, Aug 2, 2011
  20. Christian CouderAug 3, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.