Buildinfo fixes
- Use -M suffix if working tree does have uncommitted modifications. - Local commits are considered local changes as well
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
# ***** BEGIN GPL LICENSE BLOCK *****
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or
|
# This program is free software; you can redistribute it and/or
|
||||||
|
@@ -22,12 +22,6 @@ if(EXISTS ${SOURCE_DIR}/.git/)
|
|||||||
OUTPUT_VARIABLE MY_WC_BRANCH
|
OUTPUT_VARIABLE MY_WC_BRANCH
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
# Get latest version tag
|
|
||||||
execute_process(COMMAND git describe --match "v[0-9]*" --abbrev=0
|
|
||||||
WORKING_DIRECTORY ${SOURCE_DIR}
|
|
||||||
OUTPUT_VARIABLE _git_latest_version_tag
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
execute_process(COMMAND git log -1 --format=%ct
|
execute_process(COMMAND git log -1 --format=%ct
|
||||||
WORKING_DIRECTORY ${SOURCE_DIR}
|
WORKING_DIRECTORY ${SOURCE_DIR}
|
||||||
OUTPUT_VARIABLE MY_WC_COMMIT_TIMESTAMP
|
OUTPUT_VARIABLE MY_WC_COMMIT_TIMESTAMP
|
||||||
@@ -44,11 +38,20 @@ if(EXISTS ${SOURCE_DIR}/.git/)
|
|||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
if(NOT _git_changed_files STREQUAL "")
|
if(NOT _git_changed_files STREQUAL "")
|
||||||
set(MY_WC_CHANGE "${MY_WC_CHANGE}M")
|
set(MY_WC_BRANCH "${MY_WC_BRANCH} (modified)")
|
||||||
|
else()
|
||||||
|
# Unpushed commits are also considered local odifications
|
||||||
|
execute_process(COMMAND git log @{u}..
|
||||||
|
WORKING_DIRECTORY ${SOURCE_DIR}
|
||||||
|
OUTPUT_VARIABLE _git_unpushed_log
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
if(NOT _git_unpushed_log STREQUAL "")
|
||||||
|
set(MY_WC_BRANCH "${MY_WC_BRANCH} (modified)")
|
||||||
|
endif()
|
||||||
|
unset(_git_unpushed_log)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
unset(_git_changed_files)
|
unset(_git_changed_files)
|
||||||
unset(_git_latest_version_tag)
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@@ -421,6 +421,22 @@ def buildinfo(lenv, build_type):
|
|||||||
else:
|
else:
|
||||||
build_hash = os.popen('git rev-parse --short HEAD').read().strip()
|
build_hash = os.popen('git rev-parse --short HEAD').read().strip()
|
||||||
build_branch = os.popen('git rev-parse --abbrev-ref HEAD').read().strip()
|
build_branch = os.popen('git rev-parse --abbrev-ref HEAD').read().strip()
|
||||||
|
|
||||||
|
# ## Check for local modifications
|
||||||
|
has_local_changes = False
|
||||||
|
|
||||||
|
# Update GIT index before getting dirty files
|
||||||
|
os.system('git update-index -q --refresh')
|
||||||
|
changed_files = os.popen('git diff-index --name-only HEAD --').read().strip()
|
||||||
|
|
||||||
|
if changed_files:
|
||||||
|
has_local_changes = True
|
||||||
|
else:
|
||||||
|
unpushed_log = os.popen('git log @{u}..').read().strip()
|
||||||
|
has_local_changes = unpushed_log != ''
|
||||||
|
|
||||||
|
if has_local_changes:
|
||||||
|
build_branch += ' (modified)'
|
||||||
else:
|
else:
|
||||||
build_hash = 'unknown'
|
build_hash = 'unknown'
|
||||||
build_commit_timestamp = '0'
|
build_commit_timestamp = '0'
|
||||||
|
Reference in New Issue
Block a user