Blame view

scripts/setlocalversion 1.67 KB
117a93db1   Rene Scharfe   kbuild: Use git i...
1
2
  #!/bin/sh
  # Print additional version information for non-release trees.
aaebf4332   Ryan Anderson   [PATCH] kbuild: a...
3

117a93db1   Rene Scharfe   kbuild: Use git i...
4
5
6
  usage() {
  	echo "Usage: $0 [srctree]" >&2
  	exit 1
aaebf4332   Ryan Anderson   [PATCH] kbuild: a...
7
  }
117a93db1   Rene Scharfe   kbuild: Use git i...
8
  cd "${1:-.}" || usage
aaebf4332   Ryan Anderson   [PATCH] kbuild: a...
9

117a93db1   Rene Scharfe   kbuild: Use git i...
10
  # Check for git and a git repo.
f03b283f0   Trent Piepho   kbuild: tag with ...
11
  if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
117a93db1   Rene Scharfe   kbuild: Use git i...
12
  	# Do we have an untagged version?
29b0c8995   Uwe Zeisberger   kbuild: append gi...
13
  	if git name-rev --tags HEAD | grep -E '^HEAD[[:space:]]+(.*~[0-9]*|undefined)$' > /dev/null; then
56b2f0706   Sebastian Siewior   setlocalversion: ...
14
15
  		if tag=`git describe 2>/dev/null`; then
  			echo $tag | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
f03b283f0   Trent Piepho   kbuild: tag with ...
16
17
  		else
  			printf '%s%s' -g $head
56b2f0706   Sebastian Siewior   setlocalversion: ...
18
  		fi
117a93db1   Rene Scharfe   kbuild: Use git i...
19
  	fi
aaebf4332   Ryan Anderson   [PATCH] kbuild: a...
20

ff80aa97c   Peter Korsgaard   setlocalversion: ...
21
22
23
24
  	# Is this git on svn?
  	if git config --get svn-remote.svn.url >/dev/null; then
  	        printf -- '-svn%s' "`git-svn find-rev $head`"
  	fi
117a93db1   Rene Scharfe   kbuild: Use git i...
25
  	# Are there uncommitted changes?
4e7434ff0   Theodore Ts'o   kbuild: fix scrip...
26
  	git update-index --refresh --unmerged > /dev/null
b052ce4c8   Theodore Ts'o   kbuild: fix false...
27
28
  	if git diff-index --name-only HEAD | grep -v "^scripts/package" \
  	    | read dummy; then
24d49756a   Ryan Anderson   kbuild: In setloc...
29
  		printf '%s' -dirty
117a93db1   Rene Scharfe   kbuild: Use git i...
30
  	fi
3dce174cf   Aron Griffis   kbuild: support m...
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
  
  	# 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
117a93db1   Rene Scharfe   kbuild: Use git i...
54
  fi
ba3d05fb6   Bryan Wu   kbuild: add svn r...
55
56
  
  # Check for svn and a svn repo.
167d6a02c   Peter Korsgaard   setlocalversion: ...
57
  if rev=`svn info 2>/dev/null | grep '^Last Changed Rev'`; then
ba3d05fb6   Bryan Wu   kbuild: add svn r...
58
59
60
61
62
  	rev=`echo $rev | awk '{print $NF}'`
  	changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
  
  	# Are there uncommitted changes?
  	if [ $changes != 0 ]; then
e3da2fb71   Mike Frysinger   kbuild: setlocalv...
63
  		printf -- '-svn%s%s' "$rev" -dirty
ba3d05fb6   Bryan Wu   kbuild: add svn r...
64
65
66
67
68
69
70
  	else
  		printf -- '-svn%s' "$rev"
  	fi
  
  	# All done with svn
  	exit
  fi