added possibility to use origin branches
[GITManagedWebpage.git] / GITManagedWebpage.class.php
index 0cf408ce4bc1550134e1b9ca2908bc86ff820c8e..5b15d8cbf32293e6209683935ce3756d0628e306 100644 (file)
@@ -90,7 +90,7 @@ class GITManagedWebpage {
             } else
                 $argstr .= " ".escapeshellarg($arg);
         }
-        $gitcmd = 'git '.escapeshellarg('--git-dir='.$this->workdir.'repository/.git').$argstr;
+        $gitcmd = 'git '.escapeshellarg('--git-dir='.$this->workdir.'repository/.git').' '.escapeshellarg('--work-tree='.$this->workdir.'repository').$argstr;
         $output = shell_exec($gitcmd);
         return $output;
     }
@@ -218,7 +218,7 @@ class GITManagedWebpage {
         if($branch == $default_branch)
             $dir = $this->localdir;
         else
-            $dir = $this->workdir.'branch_'.$branch.'/';
+            $dir = $this->workdir.'branch_'.str_replace(array('/'), array('_'), $branch).'/';
         if(file_exists($dir))
             return $dir;
         else if($create) {
@@ -241,7 +241,6 @@ class GITManagedWebpage {
         
         $deleted_files = array();
         if(($current_version = $this->getConfig('version_'.$branch))) {
-            echo $current_version . " == " . $newest_version;
             if($current_version == $newest_version)
                 return;
             else {
@@ -291,8 +290,12 @@ class GITManagedWebpage {
         if($this->loopedcall)
             return;
         
-        if(!$this->branchExists($branch))
-            return false;
+        if(!$this->branchExists($branch)) {
+            if($this->branchExists('origin/'.$branch))
+                $branch = 'origin/'.$branch;
+            else
+                return false;
+        }
         $this->setActiveBranch($branch, $remember);
         
         if(!$this->localBranchPath($branch)) {
@@ -319,8 +322,7 @@ class GITManagedWebpage {
                 $this->updateBranch($active_branch, $dir);
             }
             include_once($dir.$file);
-        } else {
-            include_once($this->localdir.$file);
+            die();
         }
     }