]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
patchtest: check for untracked changes
authorTrevor Gamblin <tgamblin@baylibre.com>
Thu, 19 Oct 2023 13:47:10 +0000 (09:47 -0400)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 19 Oct 2023 13:53:08 +0000 (14:53 +0100)
[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>
scripts/patchtest

index 642486b8c7f2723a7e786329269a88ecb4660fc1..be40e4b2a47e7518551f62dbfa3da5a31fc8186f 100755 (executable)
@@ -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: