summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorTrevor Gamblin <tgamblin@baylibre.com>2023-10-19 09:47:10 -0400
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-10-19 14:53:45 +0100
commit4ba54e29ffa6e3dbfcb92752a759b805a2591a09 (patch)
tree58d600ea3f7ac632f6a61c0313d5f572808fcc2c /scripts
parentdfb7d2c426b46502784bc9e199a468e6c1057e95 (diff)
downloadpoky-4ba54e29ffa6e3dbfcb92752a759b805a2591a09.tar.gz
patchtest: check for untracked changes
[YOCTO #15243] Avoid overwriting local changes when running patchtest by checking for anything unstaged or uncommitted in the target repo, and logging an error if something is found. This will provide the user helpful feedback if (for example) they forgot to commit a change for their patch under test, and will leave the target repository in a reasonable state (rather than a temporary branch created by patchtest). (From OE-Core rev: 2cc2dda6c3d5a97173b3fc434cc16ff2a930f43f) Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/patchtest6
1 files changed, 6 insertions, 0 deletions
diff --git a/scripts/patchtest b/scripts/patchtest
index 642486b8c7..be40e4b2a4 100755
--- a/scripts/patchtest
+++ b/scripts/patchtest
@@ -171,6 +171,12 @@ def main():
171 log_path = None 171 log_path = None
172 patch_list = None 172 patch_list = None
173 173
174 git_status = os.popen("(cd %s && git status)" % PatchTestInput.repodir).read()
175 status_matches = ["Changes not staged for commit", "Changes to be committed"]
176 if any([match in git_status for match in status_matches]):
177 logger.error("patchtest: there are uncommitted changes in the target repo that would be overwritten. Please commit or restore them before running patchtest")
178 return 1
179
174 if os.path.isdir(patch_path): 180 if os.path.isdir(patch_path):
175 patch_list = [os.path.join(patch_path, filename) for filename in os.listdir(patch_path)] 181 patch_list = [os.path.join(patch_path, filename) for filename in os.listdir(patch_path)]
176 else: 182 else: