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

[Regression] Re: setlocalversion wasn't producing git labels for bisect

From
David Greaves <david@dgreaves.com>
Date
Aug 31, 2008, 10:15 UTC
Message-ID
<48BA6F25.8040102@dgreaves.com>
In-Reply-To
<48B9A2C7.3080001@dgreaves.com>
David Greaves wrote:
Show 14 quoted lines
> Trying to do a bisect with git version 1.5.6.3 didn't work with the setlocalversion script
>
> Running
>   git name-rev --tags HEAD
> gives the output
>   HEAD tags/v2.6.27-rc4~44^2
>
> This isn't matched by setlocalversion regexp so it makes it harder to make deb-pkg/install/grub/reboot/remove
>
> Of course if this patch is accepted it is going to make life complicated when bisecting around it.
> Maybe git should behave as the man page suggests and have the ^X before the ~nnn? (maybe it has been fixed already)
>   http://www.kernel.org/pub/software/scm/git/docs/v1.5.6.5/git-name-rev.html
> shows an example:
>   33db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99^0~940

OK, I apologise if I'm being dim. I use git to get source for all my kernels on all my various machines. Rather than have them all pull from kernel.org I have a local mirror setup that also merges in the stable branches so I can get any tag without hitting the WAN.

When I do
cd /usr/src/linux-git/
git reset --hard v2.6.27-rc5
git bisect start
git bisect bad v2.6.27-rc4

git bisect good v2.6.27-rc3 zcat /proc/config.gz > .config

make oldconfig
make include/config/kernel.release

$ cat include/config/kernel.release 2.6.27-rc3

I think this should be a -git<nnnnn>
OK I have just done a fresh clone and tried it on that - it's nothing to do with my merged setup. I've also asked on irc and someone else had the problem too.
So now I think setlocalversion should be (at least)
+    if git name-rev --tags HEAD | grep -E '^HEAD[[:space:]]+(.*[0-9^~]*|undefined)$' > /dev/null; then
I'm cc'ing the git group since I suspect this is to do with branches or rebases or something arcane and it would be good to get the regexp right.
The git-rev-parse manpage talks about many other formats but it's not easy to see which are valid input and which are possible output.
I also wondered about using git rev-parse in the script but I'm not sure.
 [ -z `git tag -l \`git name-rev --name-only --tags HEAD\`` ]
sprang to mind but I'm still getting ^0 on the end of name-rev in 1.5.6.3 and of course older git versions won't work.
In any case I think bisecting using localversion is broken around this point... I'll get on it manually for the actual bug I've got :)
David
Previous: Johannes Schindelin
Message 5 of 5 in “setlocalversion wasn't producing git labels for bisect”
  1. David GreavesAug 30, 2008
  2. Junio C HamanoAug 30, 2008
  3. Fix example in git-name-rev documentationJunio C Hamano, Aug 30, 2008
  4. Johannes SchindelinSep 1, 2008
  5. [Regression] Re: setlocalversion wasn't producing git labels for bisectDavid Greaves, Aug 31, 2008

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.