[oe-commits] Paul Eggleton : lib/oe/patch: fix for git am not cleaning up after itself
git at git.openembedded.org
git at git.openembedded.org
Wed Sep 23 08:56:08 UTC 2015
Module: openembedded-core.git
Branch: master
Commit: 21fdbd76f458b70a6646dd6d0749e3a465ebd320
URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=21fdbd76f458b70a6646dd6d0749e3a465ebd320
Author: Paul Eggleton <paul.eggleton at linux.intel.com>
Date: Tue Sep 22 17:21:22 2015 +0100
lib/oe/patch: fix for git am not cleaning up after itself
Unfortunately it appears that under certain circumstances, a failed
git am followed by git am --abort won't clean up any changes the patch
might have made - this was seen when running "devtool extract" on the
unzip recipe; unzip-6.0_overflow3.diff has a malformed date as far as
git am is concerned but it triggers this condition. Add a
git reset --hard HEAD followed by git clean -f in order to recover from
this scenario.
Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
meta/lib/oe/patch.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py
index 108bf1d..7441214 100644
--- a/meta/lib/oe/patch.py
+++ b/meta/lib/oe/patch.py
@@ -407,6 +407,13 @@ class GitApplyTree(PatchTree):
runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
except CmdError:
pass
+ # git am won't always clean up after itself, sadly, so...
+ shellcmd = ["git", "--work-tree=%s" % reporoot, "reset", "--hard", "HEAD"]
+ runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
+ # Also need to take care of any stray untracked files
+ shellcmd = ["git", "--work-tree=%s" % reporoot, "clean", "-f"]
+ runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
+
# Fall back to git apply
shellcmd = ["git", "--git-dir=%s" % reporoot, "apply", "-p%s" % patch['strippath']]
try:
More information about the Openembedded-commits
mailing list