mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-19 10:14:23 +08:00
117a93db1d
Currently scripts/setlocalversion is a Perl script that tries to figure out the current git commit ID of a repo without using git. It also imports Digest::MD5 without using it and generally is too big for the small task it does. :] And it always reports a git ID, even when the HEAD is tagged -- this is a bug. This patch replaces it with a Bourne Shell script that uses git commands to do the same. I can't come up with a scenario where someone would use a git repo and refuse to install git core at the same time, so I think it's reasonable to assume git is available. The new script also reports uncommitted changes by adding -git_dirty to the version string. Obviously you can't see from that _what_ has been changed from the last commit, so it's more of a reminder that you forgot to commit something. The script is easily extensible: simply add a check for Mercurial (or whatever) below the git check. Note: the script doesn't print a newline char anymore. That's only because it was easier to implement it that way, not a feature (or bug). 'make kernelrelease' doesn't care. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Acked-by: Ryan Anderson <ryan@michonline.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
23 lines
490 B
Bash
23 lines
490 B
Bash
#!/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`" = "HEAD undefined" ]; then
|
|
printf '%s%s' -g `echo "$head" | cut -c1-8`
|
|
fi
|
|
|
|
# Are there uncommitted changes?
|
|
if git diff-files | read dummy; then
|
|
printf '%s' -git_dirty
|
|
fi
|
|
fi
|