[OE-core] [PATCH] lib/oe/patch.py: Prefer "git am" over "git apply" when applying git patches
Laszlo Papp
lpapp at kde.org
Tue Dec 31 14:18:19 UTC 2013
Ping?
Alternatively, the system could also have an option for further
fine-tuning what to do with git patches
On Tue, Dec 24, 2013 at 12:44 PM, Laszlo Papp <lpapp at kde.org> wrote:
> It is better to use "git am" when possible to preserve the commit messages and
> the mail format in general for patches when those are present. A typical use
> case is when developers would like to keep the changes on top of the latest
> upstream, and they may occasionally need to rebase. This is not possible with
> "git diff" and "diff" generated patches.
>
> Since this is not always the case, the fallback would be the "git apply"
> operation which is currently available.
>
> Signed-off-by: Laszlo Papp <lpapp at kde.org>
> ---
> meta/lib/oe/patch.py | 20 +++++++++++++-------
> 1 file changed, 13 insertions(+), 7 deletions(-)
>
> diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py
> index 59abd0a..b085c9d 100644
> --- a/meta/lib/oe/patch.py
> +++ b/meta/lib/oe/patch.py
> @@ -203,17 +203,23 @@ class GitApplyTree(PatchTree):
> PatchTree.__init__(self, dir, d)
>
> def _applypatch(self, patch, force = False, reverse = False, run = True):
> - shellcmd = ["git", "--git-dir=.", "apply", "-p%s" % patch['strippath']]
> + def _applypatchhelper(shellcmd, patch, force = False, reverse = False, run = True):
> + if reverse:
> + shellcmd.append('-R')
>
> - if reverse:
> - shellcmd.append('-R')
> + shellcmd.append(patch['file'])
>
> - shellcmd.append(patch['file'])
> + if not run:
> + return "sh" + "-c" + " ".join(shellcmd)
>
> - if not run:
> - return "sh" + "-c" + " ".join(shellcmd)
> + return runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
>
> - return runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
> + try:
> + shellcmd = ["git", "--work-tree=.", "am", "-3", "-p%s" % patch['strippath']]
> + return _applypatchhelper(shellcmd, patch, force, reverse, run)
> + except CmdError:
> + shellcmd = ["git", "--git-dir=.", "apply", "-p%s" % patch['strippath']]
> + return _applypatchhelper(shellcmd, patch, force, reverse, run)
>
>
> class QuiltTree(PatchSet):
> --
> 1.8.5.1
>
More information about the Openembedded-core
mailing list