Files
pae.co.at/branches/version2/lib/vendor/symfony/data/bin/changelog.php
2017-03-02 21:57:21 -06:00

48 lines
1.3 KiB
PHP

<?php
/*
* This file is part of the symfony package.
* (c) Fabien Potencier <fabien.potencier@symfony-project.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
/**
* Outputs formatted Subversion log entries.
*
* Usage: php data/bin/changelog.php -r12345:67890 /branches/1.3
*
* @package symfony
* @author Fabien Potencier <fabien.potencier@symfony-project.com>
* @version SVN: $Id: changelog.php 24071 2009-11-17 07:36:21Z Kris.Wallsmith $
*/
require_once dirname(__FILE__).'/../../lib/task/sfFilesystem.class.php';
if (!isset($argv[1]))
{
throw new Exception('You must provide a revision range (-r123:456)');
}
if (!isset($argv[2]))
{
throw new Exception('You must provide a repository path (/branches/1.3)');
}
$filesystem = new sfFilesystem();
list($out, $err) = $filesystem->execute('svn info --xml');
$info = new SimpleXMLElement($out);
list($out, $err) = $filesystem->execute(vsprintf('svn log %s --xml %s', array_map('escapeshellarg', array(
$argv[1],
(string) $info->entry->repository->root.$argv[2],
))));
$log = new SimpleXMLElement($out);
foreach ($log->logentry as $logentry)
{
echo sprintf(' * [%d] %s', $logentry['revision'], trim(preg_replace('/\s*\[[\d\., ]+\]\s*/', '', (string) $logentry->msg)));
echo PHP_EOL;
}