-<?php
-require_once 'Interface/CommitHookBridge.php';
-require_once 'Repo.php';
+<?php
+require_once 'MTrack/Interface/CommitHookBridge.php';
+require_once 'MTrack/Repo.php';
// needs to be run from git-recieve (and it has to be the only thing run.
{
var $repo;
-
+ var $branch = "";
var $files = array();
var $log = array();
var $commits = array();
var $fileActions = array(); // file=> delete / modify etc..
-
+ var $props = array(); // date etc..
/**
* fills up repo, files, log, commits by running log on the STDIN
*/
- function __construct(MTrack_Repo $repo, $hooks)
+ function __construct($repo)
{
- $this->repo = $repo;
+ $this->repo = $repo->impl();
while (($line = fgets(STDIN)) !== false) {
-
+ echo "got: $line\n";
list($old, $new, $ref) = explode(' ', trim($line), 3);
+ $this->branch = preg_replace('#^refs/heads/#','', $ref);
$this->commits[] = $new;
- $fp = $this->repo->git('log', '--no-color', '--name-status',
- '--date=rfc', $ref, "$old..$new");
+ if (preg_match('/^0+$/',$old)) {
+ continue; // it's a new branch - ignore..
+ }
+
+ $fp = $this->repo->git(
+ 'log', '--no-color', '--name-status',
+ '--date=rfc', "$old..$new"); //$ref, used to be in here?? - but it breaks stuff...
$props = array();
if (!preg_match("/^commit\s+(\S+)$/", $line)) {
throw new Exception("unexpected output from git log: $line");
}
-
+ $this->props = array();
// read key: value properties like Author: / Date:
while (($line = fgets($fp)) !== false) {
$line = rtrim($line);
if (!strlen($line)) break;
if (preg_match("/^(\S+):\s*(.*)\s*$/", $line, $M)) {
- $props[$M[1]] = $M[2];
+ $this->props[$M[1]] = $M[2];
}
}
// read the commit log.
do {
- if (preg_match("/^(.+)\s+(\S+)\s*$/", $line, $M)) {
- $st = $M[1];
- $file = $M[2];
- $this->files[$file] = $new;
- $this->fileActions[$file] = $st;
- }
+ if (preg_match("/^(.+)\s+(\S+)\s*$/", $line, $M)) {
+ $st = $M[1];
+ $file = $M[2];
+ $this->files[$file] = $new;
+ $this->fileActions[$file] = $st;
+ }
} while (($line = fgets($fp)) !== false);
}
+ //print_r($this);exit;
}