-
Notifications
You must be signed in to change notification settings - Fork 29.7k
throw more specific toolexit when git fails during upgrade #57162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
throw more specific toolexit when git fails during upgrade #57162
Conversation
| ); | ||
| } on Exception catch (e){ | ||
| final String errorString = e.toString(); | ||
| if (RegExp(r'fatal: HEAD does not point to a branch').hasMatch(errorString)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
errorString.contains
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
| 'check out an official branch\n(\'stable\', \'beta\', \'dev\', or \'master\') ' | ||
| 'and retry, for example \'git checkout stable\'.' | ||
| ); | ||
| } else if (RegExp(r'fatal: no upstream configured for branch').hasMatch(errorString)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
contains
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
| "Run 'git remote add origin " | ||
| "https://github.com/flutter/flutter' in $workingDirectory", | ||
| ); | ||
| } on Exception catch (e){ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing space between ( and {
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
| 'You are not currently on a release branch. Use git to ' | ||
| 'check out an official branch\n(\'stable\', \'beta\', \'dev\', or \'master\') ' | ||
| 'and retry, for example \'git checkout stable\'.' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Based on an audit of user messages, how about:
'You are not currently on a release branch. Use git to '
'check out an official branch (\'stable\', \'beta\', \'dev\', or \'master\') '
'and retry, for example:\n'
' git checkout stable'
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
jmagman
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
* fix segment hit test behavior (#57461) * Making DropdownButtonFormField to re-render if parent widget changes (#57037) * Update DropdownButtonFormField's state if widget updates Co-authored-by: Shi-Hao Hong <[email protected]> * throw more specific toolexit when git fails during upgrade (#57162) * [flutter_tools] Refresh VM state before executing hot reload (#53960) * Update engine hash for 1.17.2 * Remove MaterialControls from examples/flutter_view (#57621) Co-authored-by: Jenn Magder <[email protected]> * Prevent building non-android plugins in build aar (#58018) * Allow FLUTTER_APPLICATION_PATH to be null for misconfigured Xcode projects (#57701) * Don't import plugins that don't support android in settings.gradle (#54407) Co-authored-by: LongCatIsLooong <[email protected]> Co-authored-by: Pedro Massango <[email protected]> Co-authored-by: Shi-Hao Hong <[email protected]> Co-authored-by: Christopher Fujino <[email protected]> Co-authored-by: Jason Simmons <[email protected]> Co-authored-by: stuartmorgan <[email protected]> Co-authored-by: Jenn Magder <[email protected]> Co-authored-by: Emmanuel Garcia <[email protected]>
Description
If the user's git repo is in a detached HEAD state (which happens after using
flutter version <tag>orgit checkout <tag>) and they try toflutter upgrade, they will receive in an incorrect error message:Unable to upgrade Flutter: no origin repository configured.This PR catches the process exception, and throws specific tool exits if either their head is detached or they don't have an upstream configured, else the original git error message is surfaced.
Related Issues
Fixes #56853.
Tests
I added two new unit tests to validate the new tool exit messages.