`composer require` fails because “Source directory docroot/core has uncommitted changes”











up vote
4
down vote

favorite
1












Symptom: You have a script that fails while executing a composer require command, resulting in output like the following:



$ ./example.sh
Gathering patches for root package.
Removing package drupal/core so that it can be re-installed and re-patched.
- Removing drupal/core (8.6.x-dev)

In VcsDownloader.php line 242:

Source directory docroot/core has uncommitted changes.


Attempting to execute the offending composer require command manually results in output like the following:



$ composer require drupal/examples
Gathering patches for root package.
Removing package drupal/core so that it can be re-installed and re-patched.
- Removing drupal/core (8.6.x-dev)
The package has modified files:
M core.services.yml
M includes/install.core.inc
M includes/install.inc
M lib/Drupal/Core/Config/ConfigInstaller.php
M lib/Drupal/Core/Config/ExtensionInstallStorage.php
M lib/Drupal/Core/Config/InstallStorage.php
M lib/Drupal/Core/Entity/EntityViewBuilder.php
M lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php
M lib/Drupal/Core/Extension/ExtensionDiscovery.php
M lib/Drupal/Core/Extension/ModuleExtensionList.php
19 more files modified, choose "v" to view the full list
Discard changes [y,n,v,d,?]?


Conditions: You are using Composer to manage your Drupal site dependencies and applying patches with cweagans/composer-patches. You may be using Acquia BLT.










share|improve this question


























    up vote
    4
    down vote

    favorite
    1












    Symptom: You have a script that fails while executing a composer require command, resulting in output like the following:



    $ ./example.sh
    Gathering patches for root package.
    Removing package drupal/core so that it can be re-installed and re-patched.
    - Removing drupal/core (8.6.x-dev)

    In VcsDownloader.php line 242:

    Source directory docroot/core has uncommitted changes.


    Attempting to execute the offending composer require command manually results in output like the following:



    $ composer require drupal/examples
    Gathering patches for root package.
    Removing package drupal/core so that it can be re-installed and re-patched.
    - Removing drupal/core (8.6.x-dev)
    The package has modified files:
    M core.services.yml
    M includes/install.core.inc
    M includes/install.inc
    M lib/Drupal/Core/Config/ConfigInstaller.php
    M lib/Drupal/Core/Config/ExtensionInstallStorage.php
    M lib/Drupal/Core/Config/InstallStorage.php
    M lib/Drupal/Core/Entity/EntityViewBuilder.php
    M lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php
    M lib/Drupal/Core/Extension/ExtensionDiscovery.php
    M lib/Drupal/Core/Extension/ModuleExtensionList.php
    19 more files modified, choose "v" to view the full list
    Discard changes [y,n,v,d,?]?


    Conditions: You are using Composer to manage your Drupal site dependencies and applying patches with cweagans/composer-patches. You may be using Acquia BLT.










    share|improve this question
























      up vote
      4
      down vote

      favorite
      1









      up vote
      4
      down vote

      favorite
      1






      1





      Symptom: You have a script that fails while executing a composer require command, resulting in output like the following:



      $ ./example.sh
      Gathering patches for root package.
      Removing package drupal/core so that it can be re-installed and re-patched.
      - Removing drupal/core (8.6.x-dev)

      In VcsDownloader.php line 242:

      Source directory docroot/core has uncommitted changes.


      Attempting to execute the offending composer require command manually results in output like the following:



      $ composer require drupal/examples
      Gathering patches for root package.
      Removing package drupal/core so that it can be re-installed and re-patched.
      - Removing drupal/core (8.6.x-dev)
      The package has modified files:
      M core.services.yml
      M includes/install.core.inc
      M includes/install.inc
      M lib/Drupal/Core/Config/ConfigInstaller.php
      M lib/Drupal/Core/Config/ExtensionInstallStorage.php
      M lib/Drupal/Core/Config/InstallStorage.php
      M lib/Drupal/Core/Entity/EntityViewBuilder.php
      M lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php
      M lib/Drupal/Core/Extension/ExtensionDiscovery.php
      M lib/Drupal/Core/Extension/ModuleExtensionList.php
      19 more files modified, choose "v" to view the full list
      Discard changes [y,n,v,d,?]?


      Conditions: You are using Composer to manage your Drupal site dependencies and applying patches with cweagans/composer-patches. You may be using Acquia BLT.










      share|improve this question













      Symptom: You have a script that fails while executing a composer require command, resulting in output like the following:



      $ ./example.sh
      Gathering patches for root package.
      Removing package drupal/core so that it can be re-installed and re-patched.
      - Removing drupal/core (8.6.x-dev)

      In VcsDownloader.php line 242:

      Source directory docroot/core has uncommitted changes.


      Attempting to execute the offending composer require command manually results in output like the following:



      $ composer require drupal/examples
      Gathering patches for root package.
      Removing package drupal/core so that it can be re-installed and re-patched.
      - Removing drupal/core (8.6.x-dev)
      The package has modified files:
      M core.services.yml
      M includes/install.core.inc
      M includes/install.inc
      M lib/Drupal/Core/Config/ConfigInstaller.php
      M lib/Drupal/Core/Config/ExtensionInstallStorage.php
      M lib/Drupal/Core/Config/InstallStorage.php
      M lib/Drupal/Core/Entity/EntityViewBuilder.php
      M lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php
      M lib/Drupal/Core/Extension/ExtensionDiscovery.php
      M lib/Drupal/Core/Extension/ModuleExtensionList.php
      19 more files modified, choose "v" to view the full list
      Discard changes [y,n,v,d,?]?


      Conditions: You are using Composer to manage your Drupal site dependencies and applying patches with cweagans/composer-patches. You may be using Acquia BLT.







      8 composer patches






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 5 hours ago









      TravisCarden

      1537




      1537






















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          6
          down vote













          Explanation: The problem is that cweagans/composer-patches is applying patches to Drupal Core after cloning it, leading Composer to believe you've modified the affected files and therefore to prompt you to overwrite them lest you unwittingly lose work in progress.



          Solution: Configure Composer to discard-changes which "[sets] the default style of handling dirty updates when in non-interactive mode... [to] always discard changes in vendors", then modify your script to pass the --no-interaction flag. E.g.:



          $ composer config discard-changes true
          $ composer require -n drupal/examples
          Using version 1.x-dev for drupal/examples
          ./composer.json has been updated
          Gathering patches for root package.
          Removing package drupal/core so that it can be re-installed and re-patched.
          - Removing drupal/core (8.6.x-dev)
          Deleting docroot/core - deleted
          Loading composer repositories with package information
          Updating dependencies (including require-dev)
          Package operations: 1 install, 0 updates, 0 removals
          Gathering patches for root package.
          No patches supplied.
          Gathering patches for dependencies. This might take a minute.
          - Installing drupal/core (8.6.x-dev 8dbf42a): Cloning 8dbf42a90c from cache
          - Applying patches for drupal/core
          https://www.drupal.org/files/issues/2869592-remove-update-warning-7.patch (2869592 - Disabled update module shouldn't produce a status report warning)
          https://www.drupal.org/files/issues/2885441-2.patch (2885441 - EntityReferenceAutocompleteWidget should define its size setting as an integer)
          https://www.drupal.org/files/issues/2018-09-24/2815221-109.patch (2815221 - Add quickedit to the latest-revision route)
          https://www.drupal.org/files/issues/2018-10-12/1356276-531.patch (1356276 - Allow profiles to define a base/parent profile and load them in the correct order)
          https://www.drupal.org/files/issues/2018-07-09/2914389-8-do-not-test.patch (2914389 - Allow profiles to exclude dependencies of their parent)

          Writing lock file
          Generating autoload files





          share|improve this answer





















            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "220"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdrupal.stackexchange.com%2fquestions%2f273859%2fcomposer-require-fails-because-source-directory-docroot-core-has-uncommitted%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            6
            down vote













            Explanation: The problem is that cweagans/composer-patches is applying patches to Drupal Core after cloning it, leading Composer to believe you've modified the affected files and therefore to prompt you to overwrite them lest you unwittingly lose work in progress.



            Solution: Configure Composer to discard-changes which "[sets] the default style of handling dirty updates when in non-interactive mode... [to] always discard changes in vendors", then modify your script to pass the --no-interaction flag. E.g.:



            $ composer config discard-changes true
            $ composer require -n drupal/examples
            Using version 1.x-dev for drupal/examples
            ./composer.json has been updated
            Gathering patches for root package.
            Removing package drupal/core so that it can be re-installed and re-patched.
            - Removing drupal/core (8.6.x-dev)
            Deleting docroot/core - deleted
            Loading composer repositories with package information
            Updating dependencies (including require-dev)
            Package operations: 1 install, 0 updates, 0 removals
            Gathering patches for root package.
            No patches supplied.
            Gathering patches for dependencies. This might take a minute.
            - Installing drupal/core (8.6.x-dev 8dbf42a): Cloning 8dbf42a90c from cache
            - Applying patches for drupal/core
            https://www.drupal.org/files/issues/2869592-remove-update-warning-7.patch (2869592 - Disabled update module shouldn't produce a status report warning)
            https://www.drupal.org/files/issues/2885441-2.patch (2885441 - EntityReferenceAutocompleteWidget should define its size setting as an integer)
            https://www.drupal.org/files/issues/2018-09-24/2815221-109.patch (2815221 - Add quickedit to the latest-revision route)
            https://www.drupal.org/files/issues/2018-10-12/1356276-531.patch (1356276 - Allow profiles to define a base/parent profile and load them in the correct order)
            https://www.drupal.org/files/issues/2018-07-09/2914389-8-do-not-test.patch (2914389 - Allow profiles to exclude dependencies of their parent)

            Writing lock file
            Generating autoload files





            share|improve this answer

























              up vote
              6
              down vote













              Explanation: The problem is that cweagans/composer-patches is applying patches to Drupal Core after cloning it, leading Composer to believe you've modified the affected files and therefore to prompt you to overwrite them lest you unwittingly lose work in progress.



              Solution: Configure Composer to discard-changes which "[sets] the default style of handling dirty updates when in non-interactive mode... [to] always discard changes in vendors", then modify your script to pass the --no-interaction flag. E.g.:



              $ composer config discard-changes true
              $ composer require -n drupal/examples
              Using version 1.x-dev for drupal/examples
              ./composer.json has been updated
              Gathering patches for root package.
              Removing package drupal/core so that it can be re-installed and re-patched.
              - Removing drupal/core (8.6.x-dev)
              Deleting docroot/core - deleted
              Loading composer repositories with package information
              Updating dependencies (including require-dev)
              Package operations: 1 install, 0 updates, 0 removals
              Gathering patches for root package.
              No patches supplied.
              Gathering patches for dependencies. This might take a minute.
              - Installing drupal/core (8.6.x-dev 8dbf42a): Cloning 8dbf42a90c from cache
              - Applying patches for drupal/core
              https://www.drupal.org/files/issues/2869592-remove-update-warning-7.patch (2869592 - Disabled update module shouldn't produce a status report warning)
              https://www.drupal.org/files/issues/2885441-2.patch (2885441 - EntityReferenceAutocompleteWidget should define its size setting as an integer)
              https://www.drupal.org/files/issues/2018-09-24/2815221-109.patch (2815221 - Add quickedit to the latest-revision route)
              https://www.drupal.org/files/issues/2018-10-12/1356276-531.patch (1356276 - Allow profiles to define a base/parent profile and load them in the correct order)
              https://www.drupal.org/files/issues/2018-07-09/2914389-8-do-not-test.patch (2914389 - Allow profiles to exclude dependencies of their parent)

              Writing lock file
              Generating autoload files





              share|improve this answer























                up vote
                6
                down vote










                up vote
                6
                down vote









                Explanation: The problem is that cweagans/composer-patches is applying patches to Drupal Core after cloning it, leading Composer to believe you've modified the affected files and therefore to prompt you to overwrite them lest you unwittingly lose work in progress.



                Solution: Configure Composer to discard-changes which "[sets] the default style of handling dirty updates when in non-interactive mode... [to] always discard changes in vendors", then modify your script to pass the --no-interaction flag. E.g.:



                $ composer config discard-changes true
                $ composer require -n drupal/examples
                Using version 1.x-dev for drupal/examples
                ./composer.json has been updated
                Gathering patches for root package.
                Removing package drupal/core so that it can be re-installed and re-patched.
                - Removing drupal/core (8.6.x-dev)
                Deleting docroot/core - deleted
                Loading composer repositories with package information
                Updating dependencies (including require-dev)
                Package operations: 1 install, 0 updates, 0 removals
                Gathering patches for root package.
                No patches supplied.
                Gathering patches for dependencies. This might take a minute.
                - Installing drupal/core (8.6.x-dev 8dbf42a): Cloning 8dbf42a90c from cache
                - Applying patches for drupal/core
                https://www.drupal.org/files/issues/2869592-remove-update-warning-7.patch (2869592 - Disabled update module shouldn't produce a status report warning)
                https://www.drupal.org/files/issues/2885441-2.patch (2885441 - EntityReferenceAutocompleteWidget should define its size setting as an integer)
                https://www.drupal.org/files/issues/2018-09-24/2815221-109.patch (2815221 - Add quickedit to the latest-revision route)
                https://www.drupal.org/files/issues/2018-10-12/1356276-531.patch (1356276 - Allow profiles to define a base/parent profile and load them in the correct order)
                https://www.drupal.org/files/issues/2018-07-09/2914389-8-do-not-test.patch (2914389 - Allow profiles to exclude dependencies of their parent)

                Writing lock file
                Generating autoload files





                share|improve this answer












                Explanation: The problem is that cweagans/composer-patches is applying patches to Drupal Core after cloning it, leading Composer to believe you've modified the affected files and therefore to prompt you to overwrite them lest you unwittingly lose work in progress.



                Solution: Configure Composer to discard-changes which "[sets] the default style of handling dirty updates when in non-interactive mode... [to] always discard changes in vendors", then modify your script to pass the --no-interaction flag. E.g.:



                $ composer config discard-changes true
                $ composer require -n drupal/examples
                Using version 1.x-dev for drupal/examples
                ./composer.json has been updated
                Gathering patches for root package.
                Removing package drupal/core so that it can be re-installed and re-patched.
                - Removing drupal/core (8.6.x-dev)
                Deleting docroot/core - deleted
                Loading composer repositories with package information
                Updating dependencies (including require-dev)
                Package operations: 1 install, 0 updates, 0 removals
                Gathering patches for root package.
                No patches supplied.
                Gathering patches for dependencies. This might take a minute.
                - Installing drupal/core (8.6.x-dev 8dbf42a): Cloning 8dbf42a90c from cache
                - Applying patches for drupal/core
                https://www.drupal.org/files/issues/2869592-remove-update-warning-7.patch (2869592 - Disabled update module shouldn't produce a status report warning)
                https://www.drupal.org/files/issues/2885441-2.patch (2885441 - EntityReferenceAutocompleteWidget should define its size setting as an integer)
                https://www.drupal.org/files/issues/2018-09-24/2815221-109.patch (2815221 - Add quickedit to the latest-revision route)
                https://www.drupal.org/files/issues/2018-10-12/1356276-531.patch (1356276 - Allow profiles to define a base/parent profile and load them in the correct order)
                https://www.drupal.org/files/issues/2018-07-09/2914389-8-do-not-test.patch (2914389 - Allow profiles to exclude dependencies of their parent)

                Writing lock file
                Generating autoload files






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 5 hours ago









                TravisCarden

                1537




                1537






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Drupal Answers!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdrupal.stackexchange.com%2fquestions%2f273859%2fcomposer-require-fails-because-source-directory-docroot-core-has-uncommitted%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    What visual should I use to simply compare current year value vs last year in Power BI desktop

                    How to ignore python UserWarning in pytest?

                    Alexandru Averescu