From: Christian Jaeger Date: Thu, 07 Aug 2008 17:59:25 GMT Subject: [PATCH B] GIT-VERSION-GEN: refresh the index before judging a working dir to be dirty Message-ID: In-Reply-To: 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 --- 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