diff --git a/src/Composer/Command/RemoveCommand.php b/src/Composer/Command/RemoveCommand.php
index 24437207e..048baace0 100644
--- a/src/Composer/Command/RemoveCommand.php
+++ b/src/Composer/Command/RemoveCommand.php
@@ -35,7 +35,7 @@ class RemoveCommand extends BaseCommand
->setName('remove')
->setDescription('Removes a package from the require or require-dev.')
->setDefinition(array(
- new InputArgument('packages', InputArgument::IS_ARRAY, 'Packages that should be removed.'),
+ new InputArgument('packages', InputArgument::IS_ARRAY | InputArgument::REQUIRED, 'Packages that should be removed.'),
new InputOption('dev', null, InputOption::VALUE_NONE, 'Removes a package from the require-dev section.'),
new InputOption('no-progress', null, InputOption::VALUE_NONE, 'Do not output download progress.'),
new InputOption('no-update', null, InputOption::VALUE_NONE, 'Disables the automatic update of the dependencies.'),
diff --git a/src/Composer/Command/ShowCommand.php b/src/Composer/Command/ShowCommand.php
index a6a046a47..03542210e 100644
--- a/src/Composer/Command/ShowCommand.php
+++ b/src/Composer/Command/ShowCommand.php
@@ -256,6 +256,8 @@ EOT
}
if (Platform::isWindows()) {
$width--;
+ } else {
+ $width = max(80, $width);
}
if ($input->getOption('path') && null === $composer) {
@@ -445,11 +447,10 @@ EOT
if (isset($package['path'])) {
$io->write(' ' . $package['path'], false);
}
- if (isset($package['warning'])) {
- $io->writeError('');
- $io->writeError('' . $package['warning'] . '', false);
- }
$io->write('');
+ if (isset($package['warning'])) {
+ $io->write('' . $package['warning'] . '');
+ }
}
if ($showAllTypes) {
diff --git a/src/Composer/Repository/Vcs/BitbucketDriver.php b/src/Composer/Repository/Vcs/BitbucketDriver.php
index 707e8189f..7fc137c44 100644
--- a/src/Composer/Repository/Vcs/BitbucketDriver.php
+++ b/src/Composer/Repository/Vcs/BitbucketDriver.php
@@ -321,6 +321,11 @@ abstract class BitbucketDriver extends VcsDriver
);
$hasNext = true;
while ($hasNext) {
+ // skip headless branches which seem to be deleted branches that bitbucket nevertheless returns in the API
+ if ($this->vcsType === 'hg' && empty($data['heads'])) {
+ continue;
+ }
+
$branchData = JsonFile::parseJson($this->getContentsWithOAuthCredentials($resource), $resource);
foreach ($branchData['values'] as $data) {
$this->branches[$data['name']] = $data['target']['hash'];