[PATCH B] GIT-VERSION-GEN: refresh the index before judging a working dir to be dirty

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx>
---
 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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux