The command allows to slightly change how repository updates are handled during install
In the previous version composer failed to updated if .git|.svn|.hg folder was missing from the package
In the current version, with the option enabled, if the update fails for exactly this reason,
it'll try to remove the package completely and install it from remote
which checks if vcs metadata is present in the package
Fixed a bug with -vvv mode. When .git folder is missing from package
in normal mode, -v mode, -vv mode the program throws the exception about missing .git folder
in -vvv mode an exception about inability to read logs
If the entity loader is disabled on a system, loading files, even from
the local file system, is considered as external to the running php
process, and thus not allowed by the libxml extension. Reading the file
contents and loading the xml as a string is a valid alternative however.
This fixes a minor inaccuracy issue when creating git checkout commands
for branches.
The git checkout command used within `GitDownloader::updateToCommit()`
does not use the "`--`" sequence to separate branch from file parameters.
This leads to an inaccuary as git tries as well the branch name as file
name. If the non-existent branch is actually the name of a file, the file
is checked out. If the non-existent branch is not the name of a file, an
error message is given:
> error: pathspec 'non-existent-branch' did not match any file(s) known to
git.
Both cases are not expected for the program flow in
`GitDownloader::updateToCommit()`.
The only thing that is expected is a non-existent branch to fail to
checkout - but with a different error message:
> // reference was not found (prints "fatal: reference is not a tree:
$ref")
This can be easily fixed by adding the missing separator when constructing
the command which is applied with this commit.