From: Paul Eggleton <paul.eggleton@linux.intel.com>
To: yocto@yoctoproject.org
Subject: [layerindex-web][PATCH 3/7] update_layer: avoid errors on modified & renamed files
Date: Tue, 3 Jul 2018 10:58:47 +1200 [thread overview]
Message-ID: <d4b8009425d566c10591c480f74c2502c959a264.1530569567.git.paul.eggleton@linux.intel.com> (raw)
In-Reply-To: <cover.1530569567.git.paul.eggleton@linux.intel.com>
If a file is modified and renamed it will show up in both
iter_change_type('M') and iter_change_type('R'), however naturally the
file that will exist will be the b path and not the a one, so we should
be looking at the b path or we will get errors.
FYI you can reproduce this with OE-Core (in a scratch database) using
the following procedure:
1) (in the OE-Core layer directory):
git checkout 59285b324f6d9ed270b0bef209ef5da22a620a83
2) update.py -l openembedded-core -b master -x --nofetch -r --fullreload
3) (in the OE-Core layer directory):
git checkout 086308aa2a5e332de6f00ed397c4a55d132f158f
4) update.py -l openembedded-core -b master -x --nofetch
Without this change you'll see the following error:
ERROR: Unable to read /opt/layerindex/layers/git___git_openembedded_org_openembedded-core/meta/recipes-devtools/python-numpy/python-numpy_1.13.1.bb: Traceback (most recent call last):
File "/opt/layerindex/layers/bitbake/lib/bb/command.py", line 84, in runCommand
result = command_method(self, commandline)
File "/opt/layerindex/layers/bitbake/lib/bb/command.py", line 568, in parseRecipeFile
envdata = bb.cache.parse_recipe(config_data, fn, appendfiles)['']
File "/opt/layerindex/layers/bitbake/lib/bb/cache.py", line 315, in parse_recipe
bb_data = bb.parse.handle(bbfile, bb_data)
File "/opt/layerindex/layers/bitbake/lib/bb/parse/__init__.py", line 117, in handle
return h['handle'](fn, data, include)
File "/opt/layerindex/layers/bitbake/lib/bb/parse/parse_py/BBHandler.py", line 132, in handle
abs_fn = resolve_file(fn, d)
File "/opt/layerindex/layers/bitbake/lib/bb/parse/__init__.py", line 141, in resolve_file
raise IOError(errno.ENOENT, "file %s not found" % fn)
FileNotFoundError: [Errno 2] file /opt/layerindex/layers/git___git_openembedded_org_openembedded-core/meta/recipes-devtools/python-numpy/python-numpy_1.13.1.bb not found
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
TODO | 1 -
layerindex/update_layer.py | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/TODO b/TODO
index 96d4feb8..7d522f84 100644
--- a/TODO
+++ b/TODO
@@ -10,7 +10,6 @@ TODO:
Bugs
* Duplication of first maintainer when editing to add a second?
-* GitPython sometimes reports renamed files as type M but we don't handle that properly e.g. OE-Core 59285b324f6d9ed270b0bef209ef5da22a620a83 086308aa2a5e332de6f00ed397c4a55d132f158f
Other
* Full-text search on layer contents
diff --git a/layerindex/update_layer.py b/layerindex/update_layer.py
index 018d7bcd..272fe51a 100644
--- a/layerindex/update_layer.py
+++ b/layerindex/update_layer.py
@@ -636,7 +636,7 @@ def main():
bbclass.save()
for diffitem in diff.iter_change_type('M'):
- path = diffitem.a_blob.path
+ path = diffitem.b_blob.path
if path.startswith(subdir_start):
skip = False
for removedir in removedirs:
--
2.17.1
next prev parent reply other threads:[~2018-07-02 23:00 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-02 22:58 [layerindex-web][PATCH 0/7] Layer index fixes Paul Eggleton
2018-07-02 22:58 ` [layerindex-web][PATCH 1/7] settings: allow disabling layer publishing emails Paul Eggleton
2018-07-02 22:58 ` [layerindex-web][PATCH 2/7] update_layer: drop debug message for deleting recipe file dependencies Paul Eggleton
2018-07-02 22:58 ` Paul Eggleton [this message]
2018-07-02 22:58 ` [layerindex-web][PATCH 4/7] recipeparse: don't error out on missing layer recommends Paul Eggleton
2018-07-02 22:58 ` [layerindex-web][PATCH 5/7] update: ignore recommends when ordering layers Paul Eggleton
2018-07-03 2:45 ` Robert Yang
2018-07-03 2:58 ` Paul Eggleton
2018-07-03 3:08 ` Robert Yang
2018-07-04 7:52 ` Robert Yang
2018-07-06 5:28 ` Paul Eggleton
2018-07-06 6:49 ` Robert Yang
2018-07-09 4:07 ` Robert Yang
2018-07-02 22:58 ` [layerindex-web][PATCH 6/7] utils: fix missing dependency logic in _add_dependency() Paul Eggleton
2018-07-02 22:58 ` [layerindex-web][PATCH 7/7] Add site-wide notice support Paul Eggleton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d4b8009425d566c10591c480f74c2502c959a264.1530569567.git.paul.eggleton@linux.intel.com \
--to=paul.eggleton@linux.intel.com \
--cc=yocto@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.