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

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

From
ASAskar Safin <safinaskar@gmail.com>
Date
Dec 17, 2022, 16:00 UTC
Message-ID
<CAPnZJGABhczzs-6Pri2SAOkujJXT1+JDH9FiwdDns6=miZmvFQ@mail.gmail.com>

Hi. It seems that either "git bisect" has a bug, either repo at https://github.com/rust-lang/rust is broken.

(Keep in mind that Rust project has somehow custom git setup: https://doc.rust-lang.org/nightly/clippy/development/infrastructure/sync.html#patching-git-subtree-to-work-with-big-repos )

So, here are steps to reproduce. I use fresh debian sid with git 2.39.0.

root@f6ca188fd101:/# git clone https://github.com/rust-lang/rust Cloning into 'rust'... remote: Enumerating objects: 2107155, done. remote: Counting objects: 100% (145/145), done. remote: Compressing objects: 100% (79/79), done. remote: Total 2107155 (delta 73), reused 102 (delta 64), pack-reused 2107010 Receiving objects: 100% (2107155/2107155), 1009.95 MiB | 2.74 MiB/s, done. Resolving deltas: 100% (1647434/1647434), done. Updating files: 100% (38754/38754), done. root@f6ca188fd101:/# cd rust

Now let's notice that commit 7175c499ecc32cb3ff713be0bbac9fd12990a34e has word "bootstrap" in file "compiler/rustc_target/src/abi/mod.rs", but commit 49c2279ef658d8732597c4da93897d84838f3df5 (master as of 2022-12-17) - does not.

Also, let's notice that 7175c499ecc32cb3ff713be0bbac9fd12990a34e is an ancestor of 49c2279ef658d8732597c4da93897d84838f3df5. (Everywhere I say that X is an ancestor of Y, I mean that X can be found in "git log Y", in other words "git log Y | grep -q '^commit X' " returns true.)

Now let's find the first commit, which doesn't contain "bootstrap" in that file in this interval. Let's do it using "git bisect".

root@f6ca188fd101:/rust# git bisect start
status: waiting for both good and bad commits
root@f6ca188fd101:/rust# git bisect good
7175c499ecc32cb3ff713be0bbac9fd12990a34e
status: waiting for bad commit, 1 good commit known
root@f6ca188fd101:/rust# git bisect bad 49c2279ef658d8732597c4da93897d84838f3df5
Bisecting: 23901 revisions left to test after this (roughly 15 steps)
[26562973b3482a635416b2b663a13016d4d90e20] Auto merge of #13653 -
VannTen:fix/doc-typo-vim-lsp, r=Veykril

Okay, so "git bisect" gave us commit 26562973b3482a635416b2b663a13016d4d90e20. And here I see a bug: 7175c499ecc32cb3ff713be0bbac9fd12990a34e is NOT ancestor of 26562973b3482a635416b2b663a13016d4d90e20! But I think "git bisect" should give us some commit between "good" and "bad", so presumably "good" should be an ancestor of the commit returned by "git bisect".

-- 
Askar Safin
Next: Andreas Schwab
Message 1 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.