RSS Git Download  Clone
Raw View History
Blames found: 1 Mode: php Binary: false


Hang on, we reloading big blames...
<?php namespace GitList\Controller; use GitList\Git\Repository; use Gitter\Model\Commit\Commit; use Silex\Application; use Silex\ControllerProviderInterface; use Symfony\Component\HttpFoundation\Request; class TreeGraphController implements ControllerProviderInterface { public function connect(Application $app) { $route = $app['controllers_factory']; // $route->get('{repo}/graph/{commitishPath}/{page}.json', // function ($repo, $commitishPath, $page) use ($app) { // /** @var $repository Repository */ // $repository = $app['git']->getRepositoryFromName($app['git.repos'], $repo); // // if ($commitishPath === null) { // $commitishPath = $repository->getHead(); // } // // $pager = $app['util.view']->getPager($page, $repository->getTotalCommits($commitishPath)); // $commits = $repository->getPaginatedCommits($commitishPath, $pager['current']); // // $jsonFormattedCommits = array(); // // foreach ($commits as $commit) { // $detailsUrl = $app['url_generator']->generate( // 'commit', // array( // 'repo' => $repo, // 'commit' => $commit->getHash() // ) // ); // // $jsonFormattedCommits[$commit->getHash()] = array( // 'hash' => $commit->getHash(), // 'parentsHash' => $commit->getParentsHash(), // 'date' => $commit->getDate()->format('U'), // 'message' => htmlentities($commit->getMessage()), // 'details' => $detailsUrl, // 'author' => array( // 'name' => $commit->getAuthor()->getName(), // 'email' => $commit->getAuthor()->getEmail(), // // due to the lack of a inbuilt javascript md5 mechanism, build the full avatar url on the php side // 'image' => 'http://gravatar.com/avatar/' . md5( // strtolower($commit->getAuthor()->getEmail()) // ) . '?s=40' // ) // ); // } // // $nextPageUrl = null; // // if ($pager['last'] !== $pager['current']) { // $nextPageUrl = $app['url_generator']->generate( // 'networkData', // array( // 'repo' => $repo, // 'commitishPath' => $commitishPath, // 'page' => $pager['next'] // ) // ); // } // // // when no commits are given, return an empty response - issue #369 // if( count($commits) === 0 ) { // return $app->json( array( // 'repo' => $repo, // 'commitishPath' => $commitishPath, // 'nextPage' => null, // 'start' => null, // 'commits' => $jsonFormattedCommits // ), 200 // ); // } // // return $app->json( array( // 'repo' => $repo, // 'commitishPath' => $commitishPath, // 'nextPage' => $nextPageUrl, // 'start' => $commits[0]->getHash(), // 'commits' => $jsonFormattedCommits // ), 200 // ); // } // )->assert('repo', $app['util.routing']->getRepositoryRegex()) // ->assert('commitishPath', $app['util.routing']->getCommitishPathRegex()) // ->value('commitishPath', null) // ->convert('commitishPath', 'escaper.argument:escape') // ->assert('page', '\d+') // ->value('page', '0') // ->bind('graphData'); $route->get( '{repo}/treegraph/{commitishPath}', function ($repo, $commitishPath) use ($app) { /** @var \GitList\Git\Repository $repository */ $repository = $app['git']->getRepositoryFromName($app['git.repos'], $repo); $command = 'log --graph --date-order --all -C -M -n 100 --date=iso ' . '--pretty=format:"B[%d] C[%H] D[%ad] A[%an] E[%ae] H[%h] S[%s]"'; $rawRows = $repository->getClient()->run($repository, $command); $rawRows = explode("\n", $rawRows); $graphItems = array(); foreach ($rawRows as $row) { if (preg_match("/^(.+?)(\s(B\[(.*?)\])? C\[(.+?)\] D\[(.+?)\] A\[(.+?)\] E\[(.+?)\] H\[(.+?)\] S\[(.+?)\])?$/", $row, $output)) { if (!isset($output[4])) { $graphItems[] = array( "relation"=>$output[1] ); continue; } $graphItems[] = array( "relation"=>$output[1], "branch"=>$output[4], "rev"=>$output[5], "date"=>$output[6], "author"=>$output[7], "author_email"=>$output[8], "short_rev"=>$output[9], "subject"=>preg_replace('/(^|\s)(#[[:xdigit:]]+)(\s|$)/', '$1<a href="$2">$2</a>$3', $output[10]) ); } } if ($commitishPath === null) { $commitishPath = $repository->getHead(); } list($branch, $file) = $app['util.routing']->parseCommitishPathParam($commitishPath, $repo); list($branch, $file) = $app['util.repository']->extractRef($repository, $branch, $file); return $app['twig']->render( 'treegraph.twig', array( 'repo' => $repo, 'branch' => $branch, 'commitishPath' => $commitishPath, 'graphItems' => $graphItems, ) ); } )->assert('repo', $app['util.routing']->getRepositoryRegex()) ->assert('commitishPath', $app['util.routing']->getCommitishPathRegex()) ->value('commitishPath', null) ->convert('commitishPath', 'escaper.argument:escape') ->bind('treegraph'); return $route; } }