From: Alejandro Colomar Date: Sat, 03 Oct 2026 17:50:28 GMT Subject: Re: git-visualize(1) plumbing equivalent Message-ID: In-Reply-To: Hi Ben, > Date: 2026-10-03 13:10:43-0400 > From: "D. Ben Knoble" > > On Sat, Oct 3, 2026 at 11:13 AM Alejandro Colomar wrote: > > > > Hi Ben, > > > > > Date: 2026-10-03 09:45:17-0400 > > > From: "D. Ben Knoble" > > > > > > On Sat, Oct 3, 2026 at 6:13 AM Alejandro Colomar wrote: > > [snip] > > > > > Having read the documentation for git-bisect(1), visualize reads several > > > > environment variables, and thus this code doesn't seem robust. What > > > > would be the plumbing version of the while-loop condition? > > > > > > > > git bisect visualize --oneline \ > > > > | wc -l \ > > > > | xargs -I{} test {} -gt 1; > > > > > > > > The goal is to know whether git-bisect(1) has found a commit yet or not, > > > > to stop looping. > > > > > > I think you are probably looking for the (size of the) set of commits > > > between bisect/bad and all the bisect/good-* refs. So you might need > > > to "git refs list" the good ones, and feed those as negated refs > > > alongside bisect/bad to rev-list? > > > > Yup, this seems to work: > > > > git refs list | grep refs/bisect/ | sed '/good/s/^/^/' | cut -f1 -d' ' | xargs git rev-list > > > > > > > > In the general case, that wouldn't account for skipped commits as I > > > understand it, where multiple commits are left at the end of the > > > bisect, but in your script it doesn't look like you skip any. > > > > Hmmmm. I'm now working on adding the ability to skip commits, so this > > would be a problem. Do you have any idea on how to deal with that? > > Not offhand, sorry :/ I'm not totally sure how bisect represents that state. Thanks anyway! I think this is getting hard enough, that it might be worth piping a heredocument into a mktemp(1) file within the script, and passing that to 'git bisect run'. Cheers, Alex --