Commit: c32cd6bf135db5eda1f074f62130ec24957a98a7
Author: Alexander Moskaliov <ir...@php.net> Fri, 23 Mar 2012
10:16:44 +0400
Parents: 00fd9038da096f1e283f85bab24e789bd84523af
Branches: master
Link:
http://git.php.net/?p=karma.git;a=commitdiff;h=c32cd6bf135db5eda1f074f62130ec24957a98a7
Log:
Small refactoring
Changed paths:
M lib/Git/PostReceiveHook.php
c32cd6bf135db5eda1f074f62130ec24957a98a7
diff --git a/lib/Git/PostReceiveHook.php b/lib/Git/PostReceiveHook.php
index 7a84f5f..3b877b1 100644
--- a/lib/Git/PostReceiveHook.php
+++ b/lib/Git/PostReceiveHook.php
@@ -16,8 +16,6 @@ class PostReceiveHook extends ReceiveHook
private $allBranches = [];
- private $branchesMailIds = [];
-
/**
* @param string $basePath base path for all repositories
* @param string $pushAuthor user who make push
@@ -79,19 +77,17 @@ class PostReceiveHook extends ReceiveHook
}
$this->alreadyExistsBranches = array_diff($this->allBranches,
$newBranches);
- //send mails per ref push
+
foreach ($this->refs as $ref) {
if ($ref['reftype'] == self::REF_TAG) {
+ // tag mail
$this->sendTagMail($ref['refname'], $ref['changetype'],
$ref['old'], $ref['new']);
- }
- }
-
- foreach($this->refs as $ref) {
- // magic populate the $this->revisions
- if ($ref['reftype'] == self::REF_BRANCH && $ref['changetype'] !=
self::TYPE_DELETED) {
+ } elseif ($ref['reftype'] == self::REF_BRANCH &&
$ref['changetype'] != self::TYPE_DELETED) {
+ // magic populate the $this->revisions
$this->getBranchRevisions($ref['refname'], $ref['changetype'],
$ref['old'], $ref['new']);
}
}
+
$this->log('Found revisions: '. implode(' ',
array_keys($this->revisions)));
//send mails per commit
foreach ($this->revisions as $revision => $branches) {
@@ -473,6 +469,7 @@ class PostReceiveHook extends ReceiveHook
* Author: %USER% Thu, 08 Mar 2012 12:39:48
+0000
* Committer: %USER% Thu, 08 Mar 2012
12:39:48 +0000
* Parents: %SHA_PARENTS%
+ * Branches: %BRANCHES%
*
* Link: http://git.php.net/?p=%PROJECT_PATH%;a=commitdiff;h=%SHA%
*
@@ -497,80 +494,85 @@ class PostReceiveHook extends ReceiveHook
private function sendCommitMail($revision, $branches)
{
- $bnames = array_map(function($x) {
- return str_replace('refs/heads/', '', $x);
- }, $branches);
-
- $info = $this->getCommitInfo($revision);
$paths = $this->getChangedPaths(escapeshellarg($revision));
$pathsString = '';
foreach ($paths as $path => $action)
{
$pathsString .= ' ' . $action . ' ' . $path . "\n";
}
- $diff = \Git::gitExec('diff-tree -c -p %s',
escapeshellarg($revision));
- $mail = new \Mail();
- $mail->setSubject($this->emailPrefix . 'com ' .
$this->getRepositoryShortName() . ': ' . $info['subject'] . ': '. implode(' ',
array_keys($paths)));
- $mail->setTimestamp(strtotime($info['author_date']));
+ $isTrivialMerge = empty($pathsString);
- $message = '';
+ if (!$isTrivialMerge) {
- $message .= 'Commit: ' . $revision . "\n";
- $message .= 'Author: ' . $info['author'] . ' <' .
$info['author_email'] . '> ' . $info['author_date'] . "\n";
- if (($info['author'] != $info['committer']) || ($info['author_email']
!= $info['committer_email'])) {
- $message .= 'Committer: ' . $info['committer'] . ' <' .
$info['committer_email'] . '> ' . $info['committer_date'] . "\n";
- }
- if ($info['parents']) $message .= 'Parents: ' . $info['parents'] .
"\n";
+ $bnames = array_map(
+ function($x) {
+ return str_replace('refs/heads/', '', $x);
+ },
+ $branches
+ );
- $message .= "Branches: " . implode(' ', $bnames) . "\n";
- $message .= "\n" . "Link: http://git.php.net/?p=" .
$this->getRepositoryName() . ";a=commitdiff;h=" . $revision . "\n";
+ $info = $this->getCommitInfo($revision);
- $message .= "\nLog:\n" . $info['log'] . "\n";
+ $diff = \Git::gitExec('diff-tree -c -p %s',
escapeshellarg($revision));
- if ($bugs = $this->getBugs($info['log'])) {
- $message .= "\nBugs:\n" . implode("\n", $bugs) . "\n";
- }
+ $mail = new \Mail();
+ $mail->setSubject($this->emailPrefix . 'com ' .
$this->getRepositoryShortName() . ': ' . $info['subject'] . ': '. implode(' ',
array_keys($paths)));
+ $mail->setTimestamp(strtotime($info['author_date']));
- $isTrivialMerge = empty($pathsString);
+ $message = '';
- if (!$isTrivialMerge && strlen($pathsString) < 8192) {
- // inline changed paths
- $message .= "\nChanged paths:\n" . $pathsString . "\n";
- if ((strlen($pathsString) + strlen($diff)) < 8192) {
- // inline diff
- $message .= "\nDiff:\n" . $diff . "\n";
- } else {
- // diff attach
- $diffFile = 'diff_' . $revision . '.txt';
- $mail->addTextFile($diffFile, $diff);
- if ((strlen($message) + $mail->getFileLength($diffFile)) >
262144) {
- // diff attach exceeded max size
- $mail->dropFile($diffFile);
- $message .= "\nDiff: <Diff exceeded maximum size>";
- }
+ $message .= 'Commit: ' . $revision . "\n";
+ $message .= 'Author: ' . $info['author'] . ' <' .
$info['author_email'] . '> ' . $info['author_date'] . "\n";
+ if (($info['author'] != $info['committer']) ||
($info['author_email'] != $info['committer_email'])) {
+ $message .= 'Committer: ' . $info['committer'] . ' <' .
$info['committer_email'] . '> ' . $info['committer_date'] . "\n";
}
- } else {
- // changed paths attach
- $pathsFile = 'paths_' . $revision . '.txt';
- $mail->addTextFile($pathsFile, $pathsString);
- if ((strlen($message) + $mail->getFileLength($pathsFile)) >
262144) {
- // changed paths attach exceeded max size
- $mail->dropFile($pathsFile);
- $message .= "\nChanged paths: <changed paths exceeded maximum
size>";
+ if ($info['parents']) $message .= 'Parents: ' . $info['parents']
. "\n";
+
+ $message .= "Branches: " . implode(' ', $bnames) . "\n";
+ $message .= "\n" . "Link: http://git.php.net/?p=" .
$this->getRepositoryName() . ";a=commitdiff;h=" . $revision . "\n";
+
+ $message .= "\nLog:\n" . $info['log'] . "\n";
+
+ if ($bugs = $this->getBugs($info['log'])) {
+ $message .= "\nBugs:\n" . implode("\n", $bugs) . "\n";
+ }
+
+ if (strlen($pathsString) < 8192) {
+ // inline changed paths
+ $message .= "\nChanged paths:\n" . $pathsString . "\n";
+ if ((strlen($pathsString) + strlen($diff)) < 8192) {
+ // inline diff
+ $message .= "\nDiff:\n" . $diff . "\n";
+ } else {
+ // diff attach
+ $diffFile = 'diff_' . $revision . '.txt';
+ $mail->addTextFile($diffFile, $diff);
+ if ((strlen($message) + $mail->getFileLength($diffFile)) >
262144) {
+ // diff attach exceeded max size
+ $mail->dropFile($diffFile);
+ $message .= "\nDiff: <Diff exceeded maximum size>";
+ }
+ }
} else {
- // diff attach
- $diffFile = 'diff_' . $revision . '.txt';
- $mail->addTextFile($diffFile, $diff);
- if ((strlen($message) + $mail->getFileLength($pathsFile) +
$mail->getFileLength($diffFile)) > 262144) {
- // diff attach exceeded max size
- $mail->dropFile($diffFile);
+ // changed paths attach
+ $pathsFile = 'paths_' . $revision . '.txt';
+ $mail->addTextFile($pathsFile, $pathsString);
+ if ((strlen($message) + $mail->getFileLength($pathsFile)) >
262144) {
+ // changed paths attach exceeded max size
+ $mail->dropFile($pathsFile);
+ $message .= "\nChanged paths: <changed paths exceeded
maximum size>";
+ } else {
+ // diff attach
+ $diffFile = 'diff_' . $revision . '.txt';
+ $mail->addTextFile($diffFile, $diff);
+ if ((strlen($message) + $mail->getFileLength($pathsFile) +
$mail->getFileLength($diffFile)) > 262144) {
+ // diff attach exceeded max size
+ $mail->dropFile($diffFile);
+ }
}
}
- }
-
- if (!$isTrivialMerge) {
$mail->setMessage($message);
$mail->setFrom($this->pushAuthor . '@php.net',
$this->pushAuthorName);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php