[PATCH B] GIT-VERSION-GEN: refresh the index before judging a working dir to be dirty
- From
- Christian Jaeger <christian@jaeger.mine.nu>
- Date
- Aug 7, 2008, 17:59 UTC
- Message-ID
- <a921f9287bf93b1f4de21968ee02a06fe69198a8.1218137290.git.christian@jaeger.mine.nu>
- In-Reply-To
- <sjj6zt28jy9qy7y8@jaeger.mine.nu>
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 <christian@jaeger.mine.nu> --- 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