[OE-core] [PATCH 2/2] scripts/combo-layer: handle diffs in commit messages

Otavio Salvador otavio at ossystems.com.br
Thu Mar 22 19:45:01 UTC 2012


Acked-by: Otavio Salvador <otavio at ossystems.com.br>


On Thu, Mar 22, 2012 at 14:15, Paul Eggleton
<paul.eggleton at linux.intel.com> wrote:
> A few recent commits in the OE-Core repository contain diffs in their
> commit messages, which totally confuses git-am when applying them to the
> combo repository during update. Add some code to detect and indent any
> diff text in the commit message so that this does not happen (and show a
> warning).
>
> Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
> ---
>  scripts/combo-layer |   38 ++++++++++++++++++++++++++++++++++++++
>  1 files changed, 38 insertions(+), 0 deletions(-)
>
> diff --git a/scripts/combo-layer b/scripts/combo-layer
> index 3612323..73d61cc 100755
> --- a/scripts/combo-layer
> +++ b/scripts/combo-layer
> @@ -144,6 +144,43 @@ def check_repo_clean(repodir):
>         logger.error("git repo %s is dirty, please fix it first", repodir)
>         sys.exit(1)
>
> +def check_patch(patchfile):
> +    f = open(patchfile)
> +    ln = f.readline()
> +    of = None
> +    in_patch = False
> +    beyond_msg = False
> +    pre_buf = ''
> +    while ln:
> +        if not beyond_msg:
> +            if ln == '---\n':
> +                if not of:
> +                    break
> +                in_patch = False
> +                beyond_msg = True
> +            elif ln.startswith('--- '):
> +                # We have a diff in the commit message
> +                in_patch = True
> +                if not of:
> +                    print('WARNING: %s contains a diff in its commit message, indenting to avoid failure during apply' % patchfile)
> +                    of = open(patchfile + '.tmp', 'w')
> +                    of.write(pre_buf)
> +                    pre_buf = ''
> +            elif in_patch and not ln[0] in '+-@ \n\r':
> +                in_patch = False
> +        if of:
> +            if in_patch:
> +                of.write(' ' + ln)
> +            else:
> +                of.write(ln)
> +        else:
> +            pre_buf += ln
> +        ln = f.readline()
> +    f.close()
> +    if of:
> +        of.close()
> +        os.rename(patchfile + '.tmp', patchfile)
> +
>  def action_update(conf, args):
>     """
>         update the component repos
> @@ -227,6 +264,7 @@ def action_update(conf, args):
>         count=len(revlist)-1
>         for patch in patchlist:
>             f.write("%s %s\n" % (patch, revlist[count]))
> +            check_patch(os.path.join(patch_dir, patch))
>             count=count-1
>         f.close()
>
> --
> 1.7.5.4
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core



-- 
Otavio Salvador                             O.S. Systems
E-mail: otavio at ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br




More information about the Openembedded-core mailing list