Since
900129cbdf ("devtool: add support for git submodules") the
--initial-rev option of update-recipe and finish has been broken: the
parse loop in _get_patchset_revs() deliberately skips the recorded
"# initial_rev ." entry from the workspace bbappend when an override
is passed, but the override value itself is never inserted into the
initial_revs dict. For a recipe without submodules the dict therefore
ends up empty and update-recipe/finish fails in patch mode with:
ERROR: Unable to find initial revision - please specify it with
--initial-rev
i.e. passing --initial-rev produces the very error message that
instructs the user to pass --initial-rev. Before
900129cbdf the passed
value simply took precedence over the one recorded in the bbappend.
Seed initial_revs with the override before parsing so the option
behaves as documented again; recorded values are still used for
submodules and for the main repo when no override is given.
AI-Generated: Uses Claude (claude-fable-5)
Signed-off-by: Babanpreet Singh <bbnpreetsingh@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
commits = {}
patches = []
initial_revs = {}
+ if initial_rev:
+ # A user-specified override applies to the main repo ("."); the
+ # parse loop below leaves it in place of the recorded value
+ initial_revs["."] = initial_rev
with open(recipe_path, 'r') as f:
for line in f:
pattern = r'^#\s.*\s(.*):\s([0-9a-fA-F]+)$'