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












5















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



























    5















    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

























      5












      5








      5


      2






      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 Dec 11 '18 at 21:03









      TravisCardenTravisCarden

      1688




      1688






















          1 Answer
          1






          active

          oldest

          votes


















          7














          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 (or -n) 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',
            autoActivateHeartbeat: false,
            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









            7














            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 (or -n) 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






























              7














              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 (or -n) 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




























                7












                7








                7







                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 (or -n) 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 (or -n) 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








                edited Dec 15 '18 at 3:42

























                answered Dec 11 '18 at 21:03









                TravisCardenTravisCarden

                1688




                1688






























                    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.




                    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

                    Le Mesnil-Réaume

                    Ida-Boy-Ed-Garten

                    web3.py web3.isConnected() returns false always