diff mbox series

devtool: standard: throws appropriate error if source is in detached HEAD

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

Commit Message

Julien Stephan April 9, 2024, 7:19 a.m. UTC
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(+)

Comments

Peter Kjellerstedt April 9, 2024, 11:11 p.m. UTC | #1
> -----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
Julien Stephan April 10, 2024, 6:54 a.m. UTC | #2
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 mbox series

Patch

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)