do not error out if changelog could not be queried from git, eg. because there is no previous tag

This commit is contained in:
Ralf Becker 2017-10-21 14:17:20 +02:00
parent fb30a1c3ca
commit cbefc25934

View File

@ -200,6 +200,7 @@ function get_changelog_from_git($_path, $log_pattern=null, &$last_tag=null, $pre
//echo __FUNCTION__."('$branch_url','$log_pattern','$revision','$prefix')\n"; //echo __FUNCTION__."('$branch_url','$log_pattern','$revision','$prefix')\n";
global $config; global $config;
$changelog = '';
$path = str_replace($config['aliasdir'], $config['checkoutdir'], $_path); $path = str_replace($config['aliasdir'], $config['checkoutdir'], $_path);
if (!file_exists($path) || !is_dir($path) || !file_exists($path.'/.git')) if (!file_exists($path) || !is_dir($path) || !file_exists($path.'/.git'))
{ {
@ -209,13 +210,13 @@ function get_changelog_from_git($_path, $log_pattern=null, &$last_tag=null, $pre
{ {
$last_tag = get_last_git_tag(); $last_tag = get_last_git_tag();
} }
if (!empty($last_tag))
{
$cmd = $config['git'].' log '.escapeshellarg($last_tag.'..HEAD'); $cmd = $config['git'].' log '.escapeshellarg($last_tag.'..HEAD');
if (getcwd() != $path) $cmd = 'cd '.$path.'; '.$cmd; if (getcwd() != $path) $cmd = 'cd '.$path.'; '.$cmd;
$output = null; $output = null;
run_cmd($cmd, $output); run_cmd($cmd, $output);
$changelog = '';
foreach($output as $line) foreach($output as $line)
{ {
if (substr($line, 0, 4) == " " && ($msg = _match_log_pattern(substr($line, 4), $log_pattern, $prefix))) if (substr($line, 0, 4) == " " && ($msg = _match_log_pattern(substr($line, 4), $log_pattern, $prefix)))
@ -223,6 +224,7 @@ function get_changelog_from_git($_path, $log_pattern=null, &$last_tag=null, $pre
$changelog .= $msg."\n"; $changelog .= $msg."\n";
} }
} }
}
return $changelog; return $changelog;
} }
@ -300,6 +302,7 @@ function get_last_git_tag()
$cmd = $config['git'].' tag -l '.escapeshellarg($config['version'].'.*'); $cmd = $config['git'].' tag -l '.escapeshellarg($config['version'].'.*');
$output = null; $output = null;
run_cmd($cmd, $output); run_cmd($cmd, $output);
array_shift($output);
return trim(array_pop($output)); return trim(array_pop($output));
} }
@ -573,6 +576,10 @@ function do_editchangelog()
$changelog .= get_changelog_from_svn($branch_url, $config['editchangelog'], $revision); $changelog .= get_changelog_from_svn($branch_url, $config['editchangelog'], $revision);
} }
} }
if (empty($changelog))
{
$changelog = "Could not query changelog for $config[version], eg. no last tag found!\n";
}
$logfile = tempnam('/tmp','checkout-build-archives'); $logfile = tempnam('/tmp','checkout-build-archives');
file_put_contents($logfile,$changelog); file_put_contents($logfile,$changelog);
$cmd = $config['editor'].' '.escapeshellarg($logfile); $cmd = $config['editor'].' '.escapeshellarg($logfile);