Re: [REVIEW for merge] kbuild updates including silence of section mismatch check

Sam Ravnborg
2008-02-02T21:30:12Z

Bryan this was from you - please comment/fix.

Sam

On Sat, Feb 02, 2008 at 10:25:51PM +0100, Frans Pop wrote:
> Sam Ravnborg wrote:
> > --- a/scripts/setlocalversion
> > +++ b/scripts/setlocalversion
> > @@ -45,3 +45,18 @@ if hgid=`hg id 2>/dev/null`; then
> > # All done with mercurial
> > exit
> > fi
> > +
> > +# Check for svn and a svn repo.
> > +if rev=`svn info 2>/dev/null | grep '^Revision' | awk '{print $NF}'` ; then
> > + changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
> > +
> > + # Are there uncommitted changes?
> > + if [ $changes != 0 ]; then
> > + printf -- '-svn%s%s%s' "$rev" -dirty "$changes"
> > + else
> > + printf -- '-svn%s' "$rev"
> > + fi
> > +
> > + # All done with svn
> > + exit
> > +fi
>
> This looks broken. Unless I'm very much mistaken the 'if' statement is
> always going to be true because the awk statement will always execute
> without error. Try: echo "" | awk '{print $NF}' || echo Error
>
> So, the code should probably be changed to:
> +if rev=`svn info 2>/dev/null | grep '^Revision' ; then
> + rev=`echo $rev | awk '{print $NF}'`
> + changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
>
> or alternatively:
> +if rev=`svn info 2>/dev/null | grep '^Revision' | awk '{print $NF}'` && \
> + [ -n "$rev" ] ; then
> + changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
>
> Cheers,
> FJP
>
> P.S. Looks like the mercurial section is missing some indentation.