| #!/bin/sh | |
| # Print additional version information for non-release trees. | |
| usage() { | |
| echo "Usage: $0 [srctree]" >&2 | |
| exit 1 | |
| } | |
| 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 | \ | |
| 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? | |
| 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 | |
| # 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 | |
| fi | |
| # Check for svn and a svn repo. | |
| if rev=`svn info 2>/dev/null` ; then | |
| rev=`echo "${rev}" | grep '^Revision' | awk '{print $NF}'` | |
| printf -- '-svn%s' $rev | |
| fi | |
| # Check for any localversion-* files | |
| printf '%s' "`cat localversion-* 2>/dev/null`" |