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

Re: https://github.com/rust-lang/rust is not bisectable

From
ASAskar Safin <safinaskar@gmail.com>
Date
Dec 18, 2022, 03:15 UTC
Message-ID
<CAPnZJGAMRY02s6UvMg7B6f=NSAgK0PJQAoftwnhXk-ufD2YknQ@mail.gmail.com>
In-Reply-To
<878rj6rnuo.fsf@igel.home>

At some point that "bootstrap" word appeared, then at some point it disappeared again. I'm trying to find a point where it has disappeared. Consider this script:

==begin #!/bin/bash

set -e set -x

git bisect reset git bisect start git bisect good 7175c499ecc32cb3ff713be0bbac9fd12990a34e git bisect bad 49c2279ef658d8732597c4da93897d84838f3df5

while :; do
  if grep -q bootstrap compiler/rustc_target/src/abi/mod.rs; then
    git bisect good
  else
    git bisect bad
  fi
  sleep 1
done
==end

Here is the output: https://paste.debian.net/1264444/ . As you can see, we always choose "else git bisect bad". And we reach... initial commit!

Well, technically speaking, this is correct: initial commit is actually the first commit, where word "bootstrap" is not present in compiler/rustc_target/src/abi/mod.rs . But this is not what I want! I want to find commit, which is the first one, which doesn't have "bootstrap" in compiler/rustc_target/src/abi/mod.rs, AND which is descendant of good commit ( 7175c499ecc32cb3ff713be0bbac9fd12990a34e ).

Also, after failing with "git bisect", I did MANUAL BISECT!!!!!! I did this: I run command "gitk --ancestry-path $GOOD..$BAD". Then I clicked to some commit located nearly in the middle of history, then I copied its ID. Then I switched to this commit and checked whether it is good. Then I again run command "gitk --ancestry-path $GOOD..$BAD", this time with a smaller interval. I did this several times and eventually I was able to find the faulty commit! (Well, the result was not good enough: this manual bisecting gave me some merge commit, so I still don't see the actual commit. But it is still better than "git bisect": "git bisect" simply gave me the initial commit.)

So, as you can see, manual bisecting (somewhat) works and "git bisect" doesn't. This means that something is wrong with "git bisect". (Maybe there is a way to make "git bisect" behave similar to that "gitk" experiment above?)

Let me say this in other words: I want git-bisect to mark all commits, which are not descendants of good, as good. (Here I assume bad is descendant of good.)

-- 
Askar Safin
Previous: Andreas SchwabNext: Andreas Schwab
Message 3 of 9 in “https://github.com/rust-lang/rust is not bisectable”
  1. Askar SafinDec 17, 2022
  2. Andreas SchwabDec 17, 2022
  3. Askar SafinDec 18, 2022
  4. Andreas SchwabDec 18, 2022
  5. SZEDER GáborDec 18, 2022
  6. Askar SafinDec 18, 2022
  7. Andreas SchwabDec 18, 2022
  8. SZEDER GáborDec 18, 2022
  9. rsbecker@nexbridge.comDec 18, 2022

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.