protected function mergeConfig($branchName = null)
{
// Handling the two different config mode (with 'branch-specific' or with '_default' section)
// See https://github.com/liip/RMT/issues/56 for more info
if (array_key_exists('_default', $this->rawConfig)) {
$baseConfig = array_merge($this->getDefaultConfig(), $this->rawConfig['_default']);
unset($baseConfig['branch-specific']);
$branchesConfig = $this->rawConfig;
unset($branchesConfig['_default']);
} else {
$baseConfig = array_merge($this->getDefaultConfig(), $this->rawConfig);
$branchesConfig = $baseConfig['branch-specific'];
unset($baseConfig['branch-specific']);
}
// Return custom branch config
if (isset($branchName) && isset($branchesConfig[$branchName])) {
return array_replace_recursive($baseConfig, $branchesConfig[$branchName]);
}
return $baseConfig;
}