From ba011f588b41ad50bffc5a24950b91e70140bc07 Mon Sep 17 00:00:00 2001 From: André Draszik Date: Fri, 4 Nov 2016 10:53:33 +0000 Subject: image-buildinfo: treat staged changes as modified branch, too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When staging changes in a layer using git add, image-buildinfo doesn't detect this as a modification, because of the way it uses git diff. Surely, merely staging, but not committing changes to git should not result in image-buildhistory assuming that the git repository hasn't been modified compared to the branch HEAD, this state should be treated similarly to modifications being unstaged. We have to use both, git diff and git diff --cached to get the desired result. (From OE-Core rev: b46906889665f6ab72bccee608276646cda50140) Signed-off-by: André Draszik Reported-by: Lukasz Nowak Reviewed-by: Lukasz Nowak Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/classes/image-buildinfo.bbclass | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'meta/classes/image-buildinfo.bbclass') diff --git a/meta/classes/image-buildinfo.bbclass b/meta/classes/image-buildinfo.bbclass index 3003f5d256..da1edf7496 100644 --- a/meta/classes/image-buildinfo.bbclass +++ b/meta/classes/image-buildinfo.bbclass @@ -28,7 +28,9 @@ def image_buildinfo_outputvars(vars, listvars, d): def get_layer_git_status(path): import subprocess try: - subprocess.check_output("cd %s; PSEUDO_UNLOAD=1 git diff --quiet --no-ext-diff" % path, + subprocess.check_output("""cd %s; export PSEUDO_UNLOAD=1; set -e; + git diff --quiet --no-ext-diff + git diff --quiet --no-ext-diff --cached""" % path, shell=True, stderr=subprocess.STDOUT) return "" -- cgit v1.2.3-54-g00ecf