summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2016-09-23 21:22:10 +1200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-24 07:30:09 +0100
commitf6928407ed281fe5c4219cd6c9f50b664fccb360 (patch)
tree45a624803a687792380ed6752f866817b3634a51 /meta/lib
parentefa3c7dd5507caf53a22a5cd854f3c832faa68d1 (diff)
downloadpoky-f6928407ed281fe5c4219cd6c9f50b664fccb360.tar.gz
lib/oe/patch: exclude "From <hash>" from commit message when PATCHTOOL is "git"
If you leave "From <hash>" lines in the commit message it can actually break git rebase because it tries to interpret the line in the context of the current repository, and if the hash is invalid then a rebase will blow up with: fatal: git cat-file: could not get object info or in newer git versions: error: unable to find <hash> fatal: git cat-file <hash>: bad file (I hit this when I tried to do a devtool upgrade on openssl to 1.0.2i the first time I did "git rebase --skip") (From OE-Core rev: 19a6b18ac23cb2d7bb89203f774b2bee7f0cb03c) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oe/patch.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py
index 05e0faa5b7..c04f098712 100644
--- a/meta/lib/oe/patch.py
+++ b/meta/lib/oe/patch.py
@@ -317,6 +317,7 @@ class GitApplyTree(PatchTree):
317 def interpretPatchHeader(headerlines): 317 def interpretPatchHeader(headerlines):
318 import re 318 import re
319 author_re = re.compile('[\S ]+ <\S+@\S+\.\S+>') 319 author_re = re.compile('[\S ]+ <\S+@\S+\.\S+>')
320 from_commit_re = re.compile('^From [a-z0-9]{40} .*')
320 outlines = [] 321 outlines = []
321 author = None 322 author = None
322 date = None 323 date = None
@@ -346,6 +347,9 @@ class GitApplyTree(PatchTree):
346 # git is fussy about author formatting i.e. it must be Name <email@domain> 347 # git is fussy about author formatting i.e. it must be Name <email@domain>
347 if author_re.match(authorval): 348 if author_re.match(authorval):
348 author = authorval 349 author = authorval
350 elif from_commit_re.match(line):
351 # We don't want the From <commit> line - if it's present it will break rebasing
352 continue
349 outlines.append(line) 353 outlines.append(line)
350 return outlines, author, date, subject 354 return outlines, author, date, subject
351 355