added .htaccess to .gitmanaged directory
[GITManagedWebpage.git] / GITManagedWebpage.class.php
index 6b6d903b57f095fdda048aa9b4fc9e6e52ce3e7b..3f6ba4aae7772b0ee2d943f53ea4eaa9d57daf94 100644 (file)
@@ -164,6 +164,14 @@ class GITManagedWebpage {
             $this->error(self::ERROR_CRITICAL, "error cloning git repository.");
             return;
         }
+        
+        $fp = fopen($this->workdir.'.htaccess');
+        fwrite($fp, '
+Order deny,allow
+Deny from all
+');
+        fclose($fp);
+        
         $this->ready = true;
         
         $default_branch = str_replace(array("\r", "\n"), array("", ""), $this->gitcmd("rev-parse", "--abbrev-ref", "HEAD"));
@@ -243,9 +251,8 @@ class GITManagedWebpage {
         if(substr($path, -1) != '/')
             $path .= '/';
         $current_branch = str_replace(array("\r", "\n"), array("", ""), $this->gitcmd("rev-parse", "--abbrev-ref", "HEAD"));
-        if($current_branch != $branch)
-            $this->gitcmd("checkout", $branch);
-        $this->gitcmd("pull");
+        $this->gitcmd("fetch");
+        $this->gitcmd("reset", "--hard", "origin/".$branch);
         $gitret = $this->gitcmd("rev-list", "--max-count=1", $branch);
         preg_match("#([a-z0-9]{40})#", $gitret, $match);
         $newest_version = $match[1];
@@ -302,6 +309,7 @@ class GITManagedWebpage {
             return;
         
         if(!$this->branchExists($branch)) {
+            $this->gitcmd("fetch");
             if(!$this->branchExists('origin/'.$branch))
                 return false;
         }
@@ -313,7 +321,7 @@ class GITManagedWebpage {
         }
     }
     
-    public function execute($file = null) {
+    public function getExecFile($file = null) {
         if($this->loopedcall)
             return;
         define("GITMANAGED_EXECUTED", true);
@@ -326,16 +334,15 @@ class GITManagedWebpage {
         $default_branch = $this->getConfig("defaultbranch");
         $active_branch = $this->getActiveBranch();
         if($active_branch != $default_branch) {
-            if(!($dir = $this->localBranchPath($branch))) {
+            if(!($dir = $this->localBranchPath($active_branch))) {
                 $dir = $this->localBranchPath($active_branch, true);
                 $this->updateBranch($active_branch, $dir, true);
             }
             chdir($dir);
-            include_once($dir.$file);
+            return $dir.$file;
         } else {
-            include($file); //possible loop!
+            return $file;
         }
-        die();
     }
     
 }