When building under the control of the "fakeroot" tool [*], as is the
case when building a Debian package using "dpkg-buildpackage
-rfakeroot", GIT-VERSION-GEN appended "-dirty" to the version number;
this happens because "git diff-index --name-only HEAD --" would report
all files as changed if they have a non-root owner/group, since they
appear as owned by root under fakeroot, leading to non-empty
output. Refreshing the index first makes the decision based on content
changes only.
[*] http://fakeroot.alioth.debian.org/
Signed-off-by: Christian Jaeger <redacted>
---
GIT-VERSION-GEN | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index cb7cd4b..fb3e2d8 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -17,6 +17,12 @@ elif test -d .git -o -f .git &&
*$LF*) (exit 1) ;;
v[0-9]*)
test -z "$(git diff-index --name-only HEAD --)" ||
+ {
+ # some metadata of files has changed; what
+ # about the contents?
+ git update-index --refresh
+ test -z "$(git diff-index --name-only HEAD --)"
+ } ||
VN="$VN-dirty" ;;
esac
then--
1.6.0.rc2.1.g7e734