The branch PHP_POST_RECEIVE on karma.git has been updated
  discards  13ad30c07628e08f20e5000956a8fb5abb7438e7 (commit)
       via  3cb77b79f3dc1a5a77cb3c4348b7a14b3e29aca2 (commit)

This update added new revisions after undoing existing revisions.  That is
to say, the old revision is not a strict subset of the new revision.  This
situation occurs when you --force push a change and generate a repository
containing something like this:

 * -- * -- B -- O -- O -- O (13ad30c07628e08f20e5000956a8fb5abb7438e7)
            \
             N -- N -- N (3cb77b79f3dc1a5a77cb3c4348b7a14b3e29aca2)

When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.

http://git.php.net/?p=karma.git;a=log;h=3cb77b79f3dc1a5a77cb3c4348b7a14b3e29aca2;hp=13ad30c07628e08f20e5000956a8fb5abb7438e7

Summary of changes:

-- Log ----------------------------------------
commit 3cb77b79f3dc1a5a77cb3c4348b7a14b3e29aca2
Author: Irker <irker@MacBook-Pro-15-Irker.local>
Date:   Thu Mar 15 13:12:58 2012 +0400

    phpdoc

diff --git a/hooks/post-receive.mail b/hooks/post-receive.mail
index aacadef..8814b35 100755
--- a/hooks/post-receive.mail
+++ b/hooks/post-receive.mail
@@ -2,10 +2,9 @@
 <?php
 namespace Karma;
 
-// STATUS: not worked
+// STATUS: may be worked
 // TODO: add license
-// TODO: refactor
-// TODO: documentation
+// TODO: refactoring and testing
 
 
 error_reporting(E_ALL | E_STRICT);
diff --git a/lib/Git/PostReceiveHook.php b/lib/Git/PostReceiveHook.php
index 589e96a..86992ca 100644
--- a/lib/Git/PostReceiveHook.php
+++ b/lib/Git/PostReceiveHook.php
@@ -18,11 +18,11 @@ class PostReceiveHook extends ReceiveHook
     private $allBranches = [];
 
     /**
-     * @param $basePath string
-     * @param $pushAuthor string
-     * @param $usersFile string
-     * @param $mailingList string
-     * @param $emailPrefix string
+     * @param $basePath string base path for all repositories
+     * @param $pushAuthor string user who make push
+     * @param $usersFile string path to file with users data
+     * @param $mailingList string mail recipient
+     * @param $emailPrefix string prefix for mail subject
      */
     public function __construct($basePath, $pushAuthor, $usersFile, 
$mailingList, $emailPrefix)
     {
@@ -37,6 +37,11 @@ class PostReceiveHook extends ReceiveHook
         $this->allBranches = $this->getAllBranches();
     }
 
+    /**
+     * Find user name by nickname in users data file
+     * @param $user user nickname
+     * @return string user name
+     */
     public function getUserName($user)
     {
         $usersDB = file($this->usersFile);
@@ -52,7 +57,9 @@ class PostReceiveHook extends ReceiveHook
 
 
     /**
-     *
+     * Parse input from STDIN
+     * Mail about changes in heads(branches) and tags
+     * Mail about new commits
      */
     public function process()
     {
@@ -120,10 +127,10 @@ class PostReceiveHook extends ReceiveHook
      *
      * --/part1--
      *
-     * @param $name string
-     * @param $changeType int
-     * @param $oldrev string
-     * @param $newrev string
+     * @param $name string branch fullname (refs/heads/example)
+     * @param $changeType int delete, create or update
+     * @param $oldrev string old revision
+     * @param $newrev string new revision
      */
     private function sendBranchMail($name, $changeType, $oldrev, $newrev)
     {
@@ -204,8 +211,9 @@ class PostReceiveHook extends ReceiveHook
 
 
     /**
-     * @param $branchName string
-     * @param array $revisions
+     * Cache revisions per branche for use it later
+     * @param $branchName string branch fullname
+     * @param array $revisions revisions array
      */
     private function cacheRevisions($branchName, array $revisions)
     {
@@ -242,10 +250,10 @@ class PostReceiveHook extends ReceiveHook
      * %PATHS%
      * --/part1--
      *
-     * @param $name string
-     * @param $changeType int
-     * @param $oldrev string
-     * @param $newrev string
+     * @param $name string tag fullname (refs/tags/example)
+     * @param $changeType int delete, create or update
+     * @param $oldrev string old revision
+     * @param $newrev string new revision
      */
     private function sendTagMail($name, $changeType, $oldrev, $newrev)
     {
@@ -310,8 +318,16 @@ class PostReceiveHook extends ReceiveHook
     }
 
     /**
-     * @param $tag string
-     * @return string
+     * Get info for tag
+     * It return array with items:
+     * 'annotated' flag,
+     * 'revision' - tag sha,
+     * 'target' - target sha (if tag not annotated it equal 'revision')
+     * only for annotated tag:
+     * 'tagger', 'tagger_email', 'tagger_date' - info about tagger person
+     * 'log' - tag message
+     * @param $tag string tag fullname
+     * @return array array with tag info
      */
     private function getTagInfo($tag)
     {
@@ -337,8 +353,15 @@ class PostReceiveHook extends ReceiveHook
         return $info;
     }
 
-
-
+    /**
+     * Find revisions for branch change
+     * Also cache revisions list for revisions mails
+     * @param $name string branch fullname (refs/heads/example)
+     * @param $changeType int delete, create or update
+     * @param $oldrev string old revision
+     * @param $newrev string new revision
+     * @return array revisions list
+     */
     private function getBranchRevisions($name, $changeType, $oldrev, $newrev)
     {
         if ($changeType == self::TYPE_UPDATED) {
@@ -350,6 +373,8 @@ class PostReceiveHook extends ReceiveHook
                 escapeshellarg($newrev) . ' --not ' . implode(' ', 
$this->escapeArrayShellArgs($this->alreadyExistsBranches))
             );
 
+            // for new branches we check if they was separated from other 
branches in same push
+            // see README.POST_RECEIVE_MAIL  "commit mail" part.
             foreach ($this->updatedBranches as $refname) {
                 if ($this->isRevExistsInBranches($this->refs[$refname]['old'], 
[$name])) {
                     $this->cacheRevisions($name, 
$this->getRevisions(escapeshellarg($this->refs[$refname]['old'] . '..' . 
$newrev)));
@@ -369,7 +394,7 @@ class PostReceiveHook extends ReceiveHook
      * Required already escaped string in $revRange!!!
      *
      * @param $revRange string A..B or A ^B C --not D   etc.
-     * @return array
+     * @return array revsions list
      */
     private function getRevisions($revRange)
     {
@@ -382,7 +407,20 @@ class PostReceiveHook extends ReceiveHook
     }
 
 
-
+    /**
+     * Get info for commit
+     * It return array with items:
+     * 'parents' -list of parents sha,
+     * 'author', 'author_email', 'author_date' - info about author person
+     * 'committer', 'committer_email', 'committer_date' - info about committer 
person
+     * 'subject' - commit subject line
+     * 'log' - full commit message
+     * 'time' - 'committer_date' in timestamp
+     *
+     * Also cache revision info
+     * @param $revision revision
+     * @return array commit info array
+     */
     private function getCommitInfo($revision)
     {
         if (!isset($this->commitsData[$revision])) {
@@ -404,6 +442,11 @@ class PostReceiveHook extends ReceiveHook
         return $this->commitsData[$revision];
     }
 
+    /**
+     * Find info about bugs in log message
+     * @param $log log message
+     * @return array array with bug numbers and links in values
+     */
     private function getBugs($log)
     {
         $bugUrlPrefixes = [
@@ -447,7 +490,7 @@ class PostReceiveHook extends ReceiveHook
      * %DIFF%
      * --/part2--
      *
-     * @param $revision string
+     * @param $revision string commit revision
      */
     private function sendCommitMail($revision)
     {
@@ -525,8 +568,9 @@ class PostReceiveHook extends ReceiveHook
 
 
     /**
-     * @param $revision string
-     * @param array $branches
+     * Check if revision exists in branches list
+     * @param $revision string revision
+     * @param array $branches branches
      * @return bool
      */
     private function isRevExistsInBranches($revision, array $branches) {
diff --git a/lib/Git/ReceiveHook.php b/lib/Git/ReceiveHook.php
index 7860043..a182a5d 100644
--- a/lib/Git/ReceiveHook.php
+++ b/lib/Git/ReceiveHook.php
@@ -15,6 +15,9 @@ abstract class ReceiveHook
     private $repositoryName = '';
     protected $refs = [];
 
+    /**
+     * @param $basePath Base path for all repositories
+     */
     public function __construct($basePath)
     {
         $rel_path = str_replace($basePath, '', \Git::getRepositoryPath());
diff --git a/lib/Mail.php b/lib/Mail.php
index 21469b9..dca9e6e 100644
--- a/lib/Mail.php
+++ b/lib/Mail.php
@@ -14,8 +14,9 @@ class Mail
     const CRLF = "\r\n";
 
     /**
+     * Add attached text file to mail
      * @param $name string unique file name
-     * @param $data string
+     * @param $data string file content
      */
     public function addTextFile($name , $data)
     {
@@ -23,8 +24,9 @@ class Mail
     }
 
     /**
-     * @param $name string
-     * @return int
+     * Return length of attached file
+     * @param $name string unique file name
+     * @return int file length
      */
     public function getFileLength($name)
     {
@@ -32,6 +34,10 @@ class Mail
         return isset($this->files[$name]) ? strlen($this->files[$name]) : 0;
     }
 
+    /**
+     * Delete attached file
+     * @param $name unique file name
+     */
     public function dropFile($name)
     {
         $name = trim($name);
@@ -39,8 +45,9 @@ class Mail
     }
 
     /**
-     * @param string $email
-     * @param string $name
+     * Set "From" address
+     * @param string $email email author address
+     * @param string $name author name
      */
     public function setFrom($email, $name = '')
     {
@@ -48,8 +55,9 @@ class Mail
     }
 
     /**
-     * @param string $email
-     * @param string $name
+     * Add recipient address
+     * @param string $email recipient address
+     * @param string $name recipient name
      */
     public function addTo($email, $name = '')
     {
@@ -57,7 +65,8 @@ class Mail
     }
 
     /**
-     * @param $subject string
+     * Set mail subject
+     * @param $subject string subject
      */
     public function setSubject($subject)
     {
@@ -65,7 +74,8 @@ class Mail
     }
 
     /**
-     * @param $message string
+     * Set mail body text
+     * @param $message string body text
      */
     public function setMessage($message)
     {
@@ -74,9 +84,10 @@ class Mail
 
 
     /**
-     * @param $name string
-     * @param $value string
-     * @return string
+     * Format header string
+     * @param $name string header name
+     * @param $value string header value
+     * @return string header string
      */
     private function makeHeader($name, $value)
     {
@@ -84,8 +95,9 @@ class Mail
     }
 
     /**
-     * @param array $address
-     * @return string
+     * Format address string
+     * @param array $address array with email adress and name
+     * @return string address string
      */
     private function makeAddress(array $address)
     {
@@ -93,9 +105,10 @@ class Mail
     }
 
     /**
-     * @param $value string
-     * @param int $maxLenght
-     * @return string
+     * Cut end encode string by mb_encode_mimeheader
+     * @param $value string utf8 string
+     * @param int $maxLenght max length
+     * @return string encoded string
      */
     private function utf8SafeEncode($value, $maxLenght = null)
     {
@@ -104,7 +117,8 @@ class Mail
     }
 
     /**
-     * @return string
+     * Prepare heade part of mail
+     * @return string header part of mail
      */
     private function makeHeaders()
     {
@@ -126,7 +140,8 @@ class Mail
     }
 
     /**
-     * @return string
+     * Prepare body part of mail
+     * @return string mail body
      */
     private function makeBody()
     {
@@ -153,6 +168,7 @@ class Mail
     }
 
     /**
+     * Send current mail
      * @return bool
      */
     public function send()

Thank you for your contribution.

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to