[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