diff mbox series

patchtest: check for untracked changes

Message ID 20231019134710.2281676-1-tgamblin@baylibre.com
State Accepted, archived
Commit 2cc2dda6c3d5a97173b3fc434cc16ff2a930f43f
Headers show
Series patchtest: check for untracked changes | expand

Commit Message

Trevor Gamblin Oct. 19, 2023, 1:47 p.m. UTC
[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>
---
 scripts/patchtest | 6 ++++++
 1 file changed, 6 insertions(+)
diff mbox series

Patch

diff --git a/scripts/patchtest b/scripts/patchtest
index 642486b8c7f..be40e4b2a47 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: