Solvedangular cli Repository is not clean after cli/core update

๐Ÿž Bug report

Command (mark with an x)

- [ ] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [x] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Is this a regression?

No, this issue only applies to updating from version 7 to 8.

Description

I'm unable to update @angular/material when following the update instructions for a basic application. After updating the project with ng update @angular/cli @angular/core, I'm receiving an error when attempting to run ng update @angular/material.

๐Ÿ”ฌ Minimal Reproduction

  1. Create a new application with the CLI v7.3.9 ng new update-test --routing --style scss
  2. cd into the app's root directory and add angular material ng add @angular/material
  3. Select the Indigo/Pink theme, yes to HammerJS and browser animations
  4. Begin the update process to v8 ng update @angular/cli @angular/core
  5. Update material ng update @angular/material

The error should appear after entering the command in step 5 and before the schematic executes.

๐Ÿ”ฅ Exception or Error

Repository is not clean.  Please commit or stash any changes before updating.

๐ŸŒ Your Environment

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / โ–ณ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/
    

Angular CLI: 8.0.0
Node: 12.3.1
OS: darwin x64
Angular: 8.0.0
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.800.0
@angular-devkit/build-angular     0.800.0
@angular-devkit/build-optimizer   0.800.0
@angular-devkit/build-webpack     0.800.0
@angular-devkit/core              8.0.0
@angular-devkit/schematics        8.0.0
@angular/cdk                      7.3.7
@angular/material                 7.3.7
@ngtools/webpack                  8.0.0
@schematics/angular               8.0.0
@schematics/update                0.800.0
rxjs                              6.5.2
typescript                        3.4.5
webpack                           4.30.0

Anything else relevant?

I was able to reproduce on both Windows 10 and OS X.

20 Answers

โœ”๏ธAccepted Answer

FYI, there is an allow-dirty flag to bypass the repo check.

ng update @angular/cli @angular/core --allow-dirty

Other Answers:

@rodlourenco The next patch release will account for your use case and only consider files inside the Angular workspace.

I just updated to 8.1.1 from 7 and this message and stopping the update is a huge pain. Please make the need for --allow-dirty to go away. A simple message with y/n is good enough. Actually, the whole update process this time has been a train wreak of crashing updates. Not the place for that discussion here but it hasn't been this bad since RC days.

This is expected and intentional. The git repository has uncommitted changes. If the changes arenโ€™t committed before the update then there would be a risk that the update may fail (or succeed but leave the application in a broken state) and there may be no easy way to revert the bad changes introduced by the update.

More Issues: