[PATCH] Use git rev-parse --symbolic-full-name to get the HEAD target ref

Thiago Macieira thiago at macieira.org
Tue Oct 15 20:19:06 UTC 2013


This will prevent us trying to depend on a file that doesn't exist in
case someone goes on a detached HEAD. For example, this could happen
during a bisect.

  (detached head) $ git rev-parse --symbolic-full-name HEAD
  HEAD
  (master) $ git rev-parse --symbolic-full-name HEAD
  refs/heads/master

This will break on a packed ref, though.

Signed-off-by: Thiago Macieira <thiago at macieira.org>
---
 subsurface-gen-version.pri | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/subsurface-gen-version.pri b/subsurface-gen-version.pri
index 5d6170f..1bc1eee 100644
--- a/subsurface-gen-version.pri
+++ b/subsurface-gen-version.pri
@@ -8,7 +8,7 @@ exists(.git/HEAD): {
     VERSION_SCRIPT = $$PWD/scripts/get-version
     # always use linux here -------------------vvv    so we get the true full version
     FULL_VERSION = "`$$VERSION_SCRIPT linux`"
-    version_h.depends = $$VERSION_SCRIPT $$system(sed \'s/ref: \\(.*\\)/.git\\/\\1/\' $$GIT_HEAD)
+    version_h.depends = $$VERSION_SCRIPT $$PWD/.git/$$system("git rev-parse --symbolic-full-name HEAD")
     version_h.commands = echo \\$${LITERAL_HASH}define VERSION_STRING \\\"`$$VERSION_SCRIPT $$VER_OS`\\\" > ${QMAKE_FILE_OUT}
     version_h.input = GIT_HEAD
     version_h.output = $$VERSION_FILE
-- 
1.7.11.7



More information about the subsurface mailing list