Attribute changed MTrack/SCM/Git/CommitHookBridge.php
[web.mtrack] / MTrack / SCM / Git / CommitHookBridge.php
index 399abe4..b16178c 100644 (file)
@@ -14,7 +14,7 @@ class MTrack_SCM_Git_CommitHookBridge extends  IMTrackCommitHookBridge
     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
@@ -28,9 +28,13 @@ class MTrack_SCM_Git_CommitHookBridge extends  IMTrackCommitHookBridge
             list($old, $new, $ref) = explode(' ', trim($line), 3);
             $this->commits[] = $new;
   
+            if (preg_match('/^0+$/',$old)) {
+                continue; // it's a new branch - ignore..
+            }
+  
             $fp = $this->repo->git(
                 'log', '--no-color', '--name-status',
-                '--date=rfc', $ref, "$old..$new");
+                '--date=rfc',  "$old..$new"); //$ref, used to be in here??  - but it breaks stuff...
                 
                 
             $props = array();
@@ -38,13 +42,13 @@ class MTrack_SCM_Git_CommitHookBridge extends  IMTrackCommitHookBridge
             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.
@@ -67,7 +71,7 @@ class MTrack_SCM_Git_CommitHookBridge extends  IMTrackCommitHookBridge
               
             } while (($line = fgets($fp)) !== false);
         }
-        print_r($this);exit;
+        //print_r($this);exit;
     }