From 3dce174cfcba11026b028d33bed0438b80e37124 Mon Sep 17 00:00:00 2001 From: Aron Griffis Date: Wed, 28 Nov 2007 16:55:44 -0500 Subject: kbuild: support mercurial in setlocalversion This represents mercurial changesets similarly to git. For untagged revisions, append the changeset id. If there are uncommitted changes, append -dirty. For example, -hgc60016ba6237-dirty Signed-off-by: Aron Griffis Signed-off-by: Sam Ravnborg --- scripts/setlocalversion | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'scripts/setlocalversion') diff --git a/scripts/setlocalversion b/scripts/setlocalversion index 82e4993f0a73..a80d6ea8a5bf 100644 --- a/scripts/setlocalversion +++ b/scripts/setlocalversion @@ -19,4 +19,27 @@ if head=`git rev-parse --verify HEAD 2>/dev/null`; then if git diff-index HEAD | 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 -- cgit v1.2.3 From d882421f4e08ddf0a94245cdbe516db260aa6f41 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Fri, 2 Nov 2007 21:52:59 -0400 Subject: kbuild: change CONFIG_LOCALVERSION_AUTO to use a git-describe-ish format Change the automatic local version to have the form -nnnnn-gSHA1SUMID, where 'nnnnn' is the number of commits since the last tag (i.e., 2.6.21-rc7). This makes it much more likely that the package names created for the kernel will look "newer" to a package manager. Signed-off-by: "Theodore Ts'o" Signed-off-by: Sam Ravnborg --- scripts/setlocalversion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'scripts/setlocalversion') diff --git a/scripts/setlocalversion b/scripts/setlocalversion index a80d6ea8a5bf..1b31da843672 100644 --- a/scripts/setlocalversion +++ b/scripts/setlocalversion @@ -12,7 +12,7 @@ cd "${1:-.}" || usage 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 - printf '%s%s' -g `echo "$head" | cut -c1-8` + git describe | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' fi # Are there uncommitted changes? -- cgit v1.2.3 From 4e7434ff028c4280bed620f28fdbf9f4d77d77ce Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Fri, 2 Nov 2007 21:53:00 -0400 Subject: kbuild: fix scripts/setlocalversion to avoid erroneous -dirty tag If git's index file is out of date, and some files have been touched such that their timestamp doesn't what is in the index, "git diff-index HEAD" may show that a particular file is dirty, when in fact it really isn't. Running "git update-index" will update the index to avoid these false positives. Signed-off-by: "Theodore Ts'o" Signed-off-by: Sam Ravnborg --- scripts/setlocalversion | 1 + 1 file changed, 1 insertion(+) (limited to 'scripts/setlocalversion') diff --git a/scripts/setlocalversion b/scripts/setlocalversion index 1b31da843672..acce8ebc5d40 100644 --- a/scripts/setlocalversion +++ b/scripts/setlocalversion @@ -16,6 +16,7 @@ if head=`git rev-parse --verify HEAD 2>/dev/null`; then fi # Are there uncommitted changes? + git update-index --refresh --unmerged > /dev/null if git diff-index HEAD | read dummy; then printf '%s' -dirty fi -- cgit v1.2.3 From b052ce4c840e2da3c72ab7dadb97d1094f6e3a89 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Fri, 2 Nov 2007 21:53:01 -0400 Subject: kbuild: fix false positive -dirty tag caused by make-kpkg make-kpkg modifies scripts/package/Makefile and deletes scripts/package/builddeb as part of its build process. Ignore these changes so the tree isn't marked as -dirty, when it is just an artifact of make-kpkg. (make-kpkg clean restores the files to their original state, and these helper scripts won't affect the final compiled kernel in any way.) Signed-off-by: "Theodore Ts'o" Signed-off-by: Sam Ravnborg --- scripts/setlocalversion | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'scripts/setlocalversion') diff --git a/scripts/setlocalversion b/scripts/setlocalversion index acce8ebc5d40..52f032e409a3 100644 --- a/scripts/setlocalversion +++ b/scripts/setlocalversion @@ -17,7 +17,8 @@ if head=`git rev-parse --verify HEAD 2>/dev/null`; then # Are there uncommitted changes? git update-index --refresh --unmerged > /dev/null - if git diff-index HEAD | read dummy; then + if git diff-index --name-only HEAD | grep -v "^scripts/package" \ + | read dummy; then printf '%s' -dirty fi -- cgit v1.2.3