lkml.org 
[lkml]   [2009]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: setlocalversion bug [Was: Linux 2.6.30-rc6]
    Hey Sam, Jeff,

    fixed and tested it, patch agains 2.6.30-r6 is included below test output.
    Also added contact information in case more bugs are found.

    # tagged commit
    [13:34] ikn:linux-2.6% git describe
    v2.6.30-rc6
    [13:34] ikn:linux-2.6% ./setlocalversion
    [13:39] ikn:linux-2.6%

    # past tagged commit
    [13:40] ikn:linux-2.6% git checkout HEAD~1
    Previous HEAD position was 72357d5... Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6
    HEAD is now at 7c7327d... Merge git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6
    [13:40] ikn:linux-2.6% git describe
    v2.6.30-rc5-299-g7c7327d
    [13:40] ikn:linux-2.6% ./setlocalversion
    -00299-g7c7327d
    [13:40] ikn:linux-2.6%

    # fresh git repo, no tag
    [13:44] ikn:g2test% ~/b/linux/linux-2.6/setlocalversion
    -gcb3ca5e

    ---

    Subject: [PATCH] Fix scripts/setlocalversion with tagged git commit

    Produce correct output for
    - tagged commit (v2.6.30-rc6)
    - past tagged commit (v2.6.30-rc5-299-g7c7327d)
    - no tag


    --- scripts/setlocalversion 2009-05-16 13:34:36.996220867 +0200
    +++ setlocalversion 2009-05-16 13:57:26.623233727 +0200
    @@ -1,5 +1,13 @@
    #!/bin/sh
    -# Print additional version information for non-release trees.
    +#
    +# This scripts adds local version information from the version
    +# control systems git, mercurial (hg) and subversion (svn).
    +#
    +# If something goes wrong, send a mail the kernel build mailinglist
    +# (see MAINTAINERS) and CC Nico Schottelius
    +# <nico-linuxsetlocalversion -at- schottelius.org>.
    +#
    +#

    usage() {
    echo "Usage: $0 [srctree]" >&2
    @@ -10,12 +18,20 @@

    # Check for git and a git repo.
    if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
    - # Do we have an untagged tag?
    - if atag=`git describe 2>/dev/null`; then
    - echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
    - # add -g${head}, if there is no usable tag
    - else
    - printf '%s%s' -g $head
    +
    + # If we are at a tagged commit (like "v2.6.30-rc6"), we ignore it,
    + # because this version is defined in the top level Makefile.
    + if [ -z "`git describe --exact-match 2>/dev/null`" ]; then
    +
    + # If we are past a tagged commit (like "v2.6.30-rc5-302-g72357d5"),
    + # we pretty print it.
    + if atag="`git describe 2>/dev/null`"; then
    + echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
    +
    + # If we don't have a tag at all we print -g{commitish}.
    + else
    + printf '%s%s' -g $head
    + fi
    fi

    # Is this git on svn?
    --
    Think about Free and Open Source Software (FOSS).
    http://nico.schottelius.org/documentations/foss/the-term-foss/

    PGP: BFE4 C736 ABE5 406F 8F42 F7CF B8BE F92A 9885 188C
    [unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2009-05-16 21:31    [W:0.024 / U:31.972 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site