X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fsetlocalversion;h=1c1bdaf7348a61fc3606165cb1cc5c6725831e05;hb=558481f038e587b22d02167af58914c814ce9de5;hp=9a23825218f20135eadd4b348e45de2b21a3d421;hpb=24d49756aa67322c2def5dc97344615572ac454e;p=linux-2.6-omap-h63xx.git diff --git a/scripts/setlocalversion b/scripts/setlocalversion old mode 100644 new mode 100755 index 9a23825218f..1c1bdaf7348 --- a/scripts/setlocalversion +++ b/scripts/setlocalversion @@ -11,12 +11,53 @@ cd "${1:-.}" || usage # Check for git and a git repo. if head=`git rev-parse --verify HEAD 2>/dev/null`; then # Do we have an untagged version? - if [ "`git name-rev --tags HEAD`" = "HEAD undefined" ]; then - printf '%s%s' -g `echo "$head" | cut -c1-8` + if git name-rev --tags HEAD | grep -E '^HEAD[[:space:]]+(.*~[0-9]*|undefined)$' > /dev/null; then + git describe | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' fi # Are there uncommitted changes? - if git diff-files | read dummy; then + git update-index --refresh --unmerged > /dev/null + if git diff-index --name-only HEAD | grep -v "^scripts/package" \ + | read dummy; then printf '%s' -dirty fi + + # All done with git + exit +fi + +# Check for mercurial and a mercurial repo. +if hgid=`hg id 2>/dev/null`; then + tag=`printf '%s' "$hgid" | cut -d' ' -f2` + + # Do we have an untagged version? + if [ -z "$tag" -o "$tag" = tip ]; then + id=`printf '%s' "$hgid" | sed 's/[+ ].*//'` + printf '%s%s' -hg "$id" + fi + + # Are there uncommitted changes? + # These are represented by + after the changeset id. + case "$hgid" in + *+|*+\ *) printf '%s' -dirty ;; + esac + + # All done with mercurial + exit +fi + +# Check for svn and a svn repo. +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` + + # 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