Message ID | 20240410070647.3783683-1-jstephan@baylibre.com |
---|---|
State | Accepted, archived |
Commit | d9c686b5ff9f591ec6b928ed539084c02df4c8a5 |
Headers | show |
Series | [v2] 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 10 april 2024 09:07 > To: openembedded-core@lists.openembedded.org > Cc: Julien Stephan <jstephan@baylibre.com> > Subject: [OE-core] [PATCH v2] 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> > > --- > > Changes in v2: > > - update error message to avoid confusion with a potentially non > existing "main" branch As you noted in an earlier mail, the same error message is used some lines later. Please change that one too. > --- > 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 2c174927ddb..51e5794a0a7 100644 > --- a/scripts/lib/devtool/standard.py > +++ b/scripts/lib/devtool/standard.py > @@ -1888,6 +1888,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 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 à 13:23, 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 10 april 2024 09:07 > > To: openembedded-core@lists.openembedded.org > > Cc: Julien Stephan <jstephan@baylibre.com> > > Subject: [OE-core] [PATCH v2] 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> > > > > --- > > > > Changes in v2: > > > > - update error message to avoid confusion with a potentially non > > existing "main" branch > > As you noted in an earlier mail, the same error message is used some > lines later. Please change that one too. > Hi Peter, Not sure we need to change the other error message, because in that case it really means the *main* branch. This error message happens if we have overrides branches and if the currently checked out branch starts with "devtool-override" (and we have several other branches). In that case, devtool cannot determine the main branch (read it as the "base" branch on which the devtool-overrides-* branches are rebased). Most of the time it will be the "devtool" branch, but there is no guarantee, the user can checkout a working branch for example. Furthermore, there is also another log message few lines after : logger.info('Handling main branch (%s)...' % mainbranch) So IMHO the log messages look fine here. Maybe we can rewrite them using "base" branch such as (but not sure it will be more clear) : raise DevtoolError('Unable to determine base branch - please check out the base branch in source tree first') and logger.info('Handling base branch (%s)...' % mainbranch) (do you also want to rename the mainbranch variable?) Anyway, such changes have nothing to do with the Detached HEAD check, so I will not add this within the same commit. I can do another patch to respell main to base (or something else more meaningful?) if you think it would be beneficial for clarity (or you can do it if you prefer). Let me know Cheers Julien > > --- > > 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 2c174927ddb..51e5794a0a7 100644 > > --- a/scripts/lib/devtool/standard.py > > +++ b/scripts/lib/devtool/standard.py > > @@ -1888,6 +1888,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 a branch, e.g., "devtool"') > > startbranch = branchname > > if branchname.startswith(override_branch_prefix): > > override_branches.append(branchname) > > -- > > 2.44.0 > > //Peter >
> -----Original Message----- > From: Julien Stephan <jstephan@baylibre.com> > Sent: den 11 april 2024 16:20 > To: Peter Kjellerstedt <peter.kjellerstedt@axis.com> > Cc: openembedded-core@lists.openembedded.org > Subject: Re: [OE-core] [PATCH v2] devtool: standard: throws appropriate error if source is in detached HEAD > > Le mer. 10 avr. 2024 à 13:23, 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 10 april 2024 09:07 > > > To: openembedded-core@lists.openembedded.org > > > Cc: Julien Stephan <jstephan@baylibre.com> > > > Subject: [OE-core] [PATCH v2] 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> > > > > > > --- > > > > > > Changes in v2: > > > > > > - update error message to avoid confusion with a potentially non > > > existing "main" branch > > > > As you noted in an earlier mail, the same error message is used some > > lines later. Please change that one too. > > > > Hi Peter, > Not sure we need to change the other error message, because in that > case it really means the *main* branch. Actually, all that code predates the recent idea of renaming master to main so the use of "main branch" here refers to a "base" branch. > This error message happens if we have overrides branches and if the > currently checked out branch starts with "devtool-override" (and we > have several other branches). > In that case, devtool cannot determine the main branch (read it as the > "base" branch on which the devtool-overrides-* branches are rebased). > Most of the time it will be the "devtool" branch, but there is no > guarantee, the user can checkout a working branch for example. > > Furthermore, there is also another log message few lines after : > logger.info('Handling main branch (%s)...' % mainbranch) > > So IMHO the log messages look fine here. Maybe we can rewrite them > using "base" branch such as (but not sure it will be more clear) : > > raise DevtoolError('Unable to determine base branch - please check > out the base branch in source tree first') > > and > logger.info('Handling base branch (%s)...' % mainbranch) > > > (do you also want to rename the mainbranch variable?) If we change this, it should definitely be changed as well. > > Anyway, such changes have nothing to do with the Detached HEAD check, > so I will not add this within the same commit. I agree. If it had just been a matter of aligning the two error messages, then I think it would have been fine to do it, but not if it involves more significant changes. > I can do another patch to respell main to base (or something else more > meaningful?) if you think it would be beneficial for clarity I think using "base branch" rather than "main branch" would be a lot less confusing. > (or you can do it if you prefer). Please do send a patch for it. > > Let me know > Cheers > Julien //Peter > > > --- > > > 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 2c174927ddb..51e5794a0a7 100644 > > > --- a/scripts/lib/devtool/standard.py > > > +++ b/scripts/lib/devtool/standard.py > > > @@ -1888,6 +1888,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 a branch, e.g., "devtool"') > > > 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 2c174927ddb..51e5794a0a7 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -1888,6 +1888,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 a branch, e.g., "devtool"') 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> --- Changes in v2: - update error message to avoid confusion with a potentially non existing "main" branch --- scripts/lib/devtool/standard.py | 2 ++ 1 file changed, 2 insertions(+)