MTrack/SCM/Git/Repo.php
[web.mtrack] / MTrack / SCM / Git / Repo.php
index 469734b..e5b36ec 100644 (file)
@@ -216,6 +216,9 @@ HOOK;
      * 
      * @param  string path (can be empty - eg. '')
      * @param  {number|date} limit  how many to fetch
+     *
+     *      -- prefered args:
+     *          
      * @param  {string} object = eg. rev|tag|branch  (use 'rev' here and ident=HASH to retrieve a speific revision
      * @param  {string} ident = 
      *
@@ -244,10 +247,21 @@ HOOK;
         if ($limit !== null) {
             if (is_int($limit)) {
                 $args[] = "--max-count=$limit";
-            } else if (is_array($limit)) {
+            } else if (is_array($limit) && isset($limit[0]) && isset($limit[1])) {
                 
                 $args[] = "--skip={$limit[0]} --max-count={$limit[1]}";
+                
+                
+            /// oh what a horible hack.. - bad api design here.
+            } else if (is_array($limit) ) {
+                foreach($limit as $k=>$v) {
+                     
+                    $args[] = ($k == '-') ? $v : ('--'. $k .'='. $v);
+                    
+                }
+                 
             } else {
+                    
                 $args[] = "--since=$limit";
             }
         }
@@ -264,7 +278,7 @@ HOOK;
         
         
         
-        print_R(array($args, '--' ,$path));exit;
+        //   print_R(array($args, '--' ,$path));exit;
         $fp = $this->git('log', $args, '--', $path);
 
         $commits = array();
@@ -319,11 +333,11 @@ HOOK;
         return $this->git('diff', "$from^..$from", '--', $path);
       }
 
-  public function getWorkingCopy()
-  {
-    require_once 'MTrack/SCM/Git/WorkingCopy.php';
-    return new MTrack_SCM_Git_WorkingCopy($this);
-  }
+    public function getWorkingCopy()
+    {
+        require_once 'MTrack/SCM/Git/WorkingCopy.php';
+        return new MTrack_SCM_Git_WorkingCopy($this);
+    }
 
   public function getRelatedChanges($revision) // pretty nasty.. could end up with 1000's of changes..
   {
@@ -373,7 +387,7 @@ HOOK;
               var_dump('git ' . join (' ' , $a));
             //  die("oops");
           }
-          //print_r($a);
+         // echo "git " . implode(" " , $a) . "\n";
           return MTrackSCM::run('git', 'read', $a);
     }