Message ID | 20240409071905.3625142-1-jstephan@baylibre.com |
---|---|
State | Accepted, archived |
Commit | d9c686b5ff9f591ec6b928ed539084c02df4c8a5 |
Headers | show |
Series | devtool: standard: throws appropriate error if source is in detached HEAD | expand |
> -----Original Message----- > From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> On Behalf Of Julien Stephan > Sent: den 9 april 2024 09:19 > To: openembedded-core@lists.openembedded.org > Cc: Julien Stephan <jstephan@baylibre.com> > Subject: [OE-core] [PATCH] devtool: standard: throws appropriate error if source is in detached HEAD > > If source is in detached HEAD, we get the following error when using > detvool finish command: > > [...] > File "<...>/poky/scripts/lib/devtool/standard.py", line 1938, in _update_recipe > bb.process.run('git checkout %s' % startbranch, cwd=srctree) > File "<...>/poky/bitbake/lib/bb/process.py", line 189, in run > raise ExecutionError(cmd, pipe.returncode, stdout, stderr) > bb.process.ExecutionError: Execution of 'git checkout (HEAD detached at 9bbf87e)' failed with exit code 2: > /bin/sh: -c: line 1: syntax error near unexpected token `(' > /bin/sh: -c: line 1: `git checkout (HEAD detached at 9bbf87e)' > > Check this and throws an appropriate error in this case > > Signed-off-by: Julien Stephan <jstephan@baylibre.com> > --- > scripts/lib/devtool/standard.py | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/scripts/lib/devtool/standard.py > b/scripts/lib/devtool/standard.py > index 7972b4f8223..7f32b0999a4 100644 > --- a/scripts/lib/devtool/standard.py > +++ b/scripts/lib/devtool/standard.py > @@ -1885,6 +1885,8 @@ def _update_recipe(recipename, workspace, rd, mode, appendlayerdir, wildcard_ver > for line in stdout.splitlines(): > branchname = line[2:] > if line.startswith('* '): > + if 'HEAD' in line: > + raise DevtoolError('Detached HEAD - please check out the main branch in source tree first') Using "main branch" here might lead to confusion since it is unclear if the error is referring to an actual "main" branch, which not all repositories have, or to whatever branch is primarily used. Additionally, when using devtool, the branch is typically "devtool". I would change it to: raise DevtoolError('Detached HEAD - please check out a branch, e.g., "devtool"') > startbranch = branchname > if branchname.startswith(override_branch_prefix): > override_branches.append(branchname) > -- > 2.44.0 //Peter
Le mer. 10 avr. 2024 à 01:11, Peter Kjellerstedt <peter.kjellerstedt@axis.com> a écrit : > > > -----Original Message----- > > From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> On Behalf Of Julien Stephan > > Sent: den 9 april 2024 09:19 > > To: openembedded-core@lists.openembedded.org > > Cc: Julien Stephan <jstephan@baylibre.com> > > Subject: [OE-core] [PATCH] devtool: standard: throws appropriate error if source is in detached HEAD > > > > If source is in detached HEAD, we get the following error when using > > detvool finish command: > > > > [...] > > File "<...>/poky/scripts/lib/devtool/standard.py", line 1938, in _update_recipe > > bb.process.run('git checkout %s' % startbranch, cwd=srctree) > > File "<...>/poky/bitbake/lib/bb/process.py", line 189, in run > > raise ExecutionError(cmd, pipe.returncode, stdout, stderr) > > bb.process.ExecutionError: Execution of 'git checkout (HEAD detached at 9bbf87e)' failed with exit code 2: > > /bin/sh: -c: line 1: syntax error near unexpected token `(' > > /bin/sh: -c: line 1: `git checkout (HEAD detached at 9bbf87e)' > > > > Check this and throws an appropriate error in this case > > > > Signed-off-by: Julien Stephan <jstephan@baylibre.com> > > --- > > scripts/lib/devtool/standard.py | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/scripts/lib/devtool/standard.py > > b/scripts/lib/devtool/standard.py > > index 7972b4f8223..7f32b0999a4 100644 > > --- a/scripts/lib/devtool/standard.py > > +++ b/scripts/lib/devtool/standard.py > > @@ -1885,6 +1885,8 @@ def _update_recipe(recipename, workspace, rd, mode, appendlayerdir, wildcard_ver > > for line in stdout.splitlines(): > > branchname = line[2:] > > if line.startswith('* '): > > + if 'HEAD' in line: > > + raise DevtoolError('Detached HEAD - please check out the main branch in source tree first') > > Using "main branch" here might lead to confusion since it is unclear > if the error is referring to an actual "main" branch, which not all > repositories have, or to whatever branch is primarily used. Hi Peter, I used the same error message as the one already existing a few lines below. To be honest I read it as "the primary branch" not "the branch named main" but I understand it can be confusing. > Additionally, when using devtool, the branch is typically "devtool". > > I would change it to: > > raise DevtoolError('Detached HEAD - please check out a branch, e.g., "devtool"') makes sense, let me send a v2. Thank you! > > > startbranch = branchname > > if branchname.startswith(override_branch_prefix): > > override_branches.append(branchname) > > -- > > 2.44.0 > > //Peter >
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 7972b4f8223..7f32b0999a4 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -1885,6 +1885,8 @@ def _update_recipe(recipename, workspace, rd, mode, appendlayerdir, wildcard_ver for line in stdout.splitlines(): branchname = line[2:] if line.startswith('* '): + if 'HEAD' in line: + raise DevtoolError('Detached HEAD - please check out the main branch in source tree first') startbranch = branchname if branchname.startswith(override_branch_prefix): override_branches.append(branchname)
If source is in detached HEAD, we get the following error when using detvool finish command: [...] File "<...>/poky/scripts/lib/devtool/standard.py", line 1938, in _update_recipe bb.process.run('git checkout %s' % startbranch, cwd=srctree) File "<...>/poky/bitbake/lib/bb/process.py", line 189, in run raise ExecutionError(cmd, pipe.returncode, stdout, stderr) bb.process.ExecutionError: Execution of 'git checkout (HEAD detached at 9bbf87e)' failed with exit code 2: /bin/sh: -c: line 1: syntax error near unexpected token `(' /bin/sh: -c: line 1: `git checkout (HEAD detached at 9bbf87e)' Check this and throws an appropriate error in this case Signed-off-by: Julien Stephan <jstephan@baylibre.com> --- scripts/lib/devtool/standard.py | 2 ++ 1 file changed, 2 insertions(+)