[oe] [PATCH] patch.bbclass: Add "git" patchtool mechanism, which uses git-apply
Denys Dmytriyenko
denis at denix.org
Thu Aug 20 03:55:28 UTC 2009
On Wed, Aug 19, 2009 at 08:24:34PM -0700, Chris Larson wrote:
> From: Dale Farnsworth <dfarnsworth at mvista.com>
>
> It can be selected by setting PATCHTOOL = "git".
>
> This is useful because git-apply honors the permissions information
> produced by git-format-patch.
>
> Signed-off-by: Dale Farnsworth <dfarnsworth at mvista.com>
> Signed-off-by: Chris Larson <clarson at mvista.com>
Acked-by: Denys Dmytriyenko <denis at denix.org>
Nice one, thanks!
> ---
> classes/patch.bbclass | 20 ++++++++++++++++++++
> 1 files changed, 20 insertions(+), 0 deletions(-)
>
> diff --git a/classes/patch.bbclass b/classes/patch.bbclass
> index 2aa63c0..650d9c1 100644
> --- a/classes/patch.bbclass
> +++ b/classes/patch.bbclass
> @@ -189,6 +189,24 @@ def patch_init(d):
> def Clean(self):
> """"""
>
> + class GitApplyTree(PatchTree):
> + def __init__(self, dir, d):
> + PatchTree.__init__(self, dir, d)
> +
> + def _applypatch(self, patch, force = False, reverse = False, run = True):
> + shellcmd = ["git", "--git-dir=.", "apply", "-p%s" % patch['strippath']]
> +
> + if reverse:
> + shellcmd.append('-R')
> +
> + shellcmd.append(patch['file'])
> +
> + if not run:
> + return "sh" + "-c" + " ".join(shellcmd)
> +
> + return runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
> +
> +
> class QuiltTree(PatchSet):
> def _runcmd(self, args, run = True):
> quiltrc = bb.data.getVar('QUILTRCFILE', self.d, 1)
> @@ -424,6 +442,7 @@ def patch_init(d):
> g["PatchSet"] = PatchSet
> g["PatchTree"] = PatchTree
> g["QuiltTree"] = QuiltTree
> + g["GitApplyTree"] = GitApplyTree
> g["Resolver"] = Resolver
> g["UserResolver"] = UserResolver
> g["NOOPResolver"] = NOOPResolver
> @@ -449,6 +468,7 @@ python patch_do_patch() {
> patchsetmap = {
> "patch": PatchTree,
> "quilt": QuiltTree,
> + "git": GitApplyTree,
> }
>
> cls = patchsetmap[bb.data.getVar('PATCHTOOL', d, 1) or 'quilt']
> --
> 1.6.0
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
More information about the Openembedded-devel
mailing list