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:08 +0100
commit2cc2dda6c3d5a97173b3fc434cc16ff2a930f43f (patch)
tree1a99621d82913d5ce90048ca05290ed1d76ba188 /scripts
parentc110e5708465a6becc611acf97f166302a17ebdf (diff)
downloadopenembedded-core-2cc2dda6c3d5a97173b3fc434cc16ff2a930f43f.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). 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():
log_path = None
patch_list = None
+ git_status = os.popen("(cd %s && git status)" % PatchTestInput.repodir).read()
+ status_matches = ["Changes not staged for commit", "Changes to be committed"]
+ if any([match in git_status for match in status_matches]):
+ logger.error("patchtest: there are uncommitted changes in the target repo that would be overwritten. Please commit or restore them before running patchtest")
+ return 1
+
if os.path.isdir(patch_path):
patch_list = [os.path.join(patch_path, filename) for filename in os.listdir(patch_path)]
else: