adding the ability to clone from an existing source to create a new repo
[gwvp-mini.git] / gwvpmini / gwvpmini_gitrepo.php
index 1da83b9..6584109 100644 (file)
@@ -3,7 +3,7 @@ global $HOME_PAGE_PROVIDERS;
 
 
 $CALL_ME_FUNCTIONS["repoadmin"] = "gwvpmini_RepoCallMe";
-$HOME_PAGE_PROVIDERS["gitlog"] = "gwvpmini_GitLogProvider";\r
+$HOME_PAGE_PROVIDERS["00gitlog"] = "gwvpmini_GitLogProvider";\r
 \r
 \r
 // the home_page_provders bit is an array\r
@@ -15,15 +15,15 @@ $MENU_ITEMS["10repos"]["link"] = "$BASE_URL/repos";
 function gwvpmini_RepoCallMe()\r
 {\r
 \r
-       error_log("in repoadmin callme - err?");
-       error_log(print_r($_REQUEST, true));\r
+       // error_log("in repoadmin callme - err?");
+       // error_log(print_r($_REQUEST, true));\r
        if(isset($_REQUEST["q"])) {
-               error_log("in repoadmin callme, for Q");\r
+               // error_log("in repoadmin callme, for Q");\r
                $query = $_REQUEST["q"];\r
                $qspl = explode("/", $query);\r
                if(isset($qspl[0])) {\r
                        if($qspl[0] == "repos") {
-                               error_log("in repos call");
+                               // error_log("in repos call");
                                if(isset($qspl[1])) {
                                        if($qspl[1] == "create") {
                                                return "gwvpmini_RepoCreate";
@@ -31,7 +31,7 @@ function gwvpmini_RepoCallMe()
                                                return "gwvpmini_RepoMainPage";
                                        }
                                } else {\r
-                                       error_log("i got here, where next?");\r
+                                       // error_log("i got here, where next?");\r
                                        return "gwvpmini_RepoMainPage";
                                }\r
                        } else return false;\r
@@ -67,7 +67,7 @@ function gwvpmini_RepoMainPageBody()
                                $cmd = "git --git-dir=\"$repo_base/$name.git\" log --all -1 2> /dev/null";
                                echo "<tr><td><a href=\"$BASE_URL/view/$name\">$name</a></td><td>$desc</td>";
                                echo "<td>";\r
-                               error_log("CMD: $cmd");
+                               // error_log("CMD: $cmd");
                                //system("$cmd");
                                $fls = popen($cmd, "r");
                                $tks = "";
@@ -96,7 +96,7 @@ function gwvpmini_RepoMainPageBody()
                                $desc = $repo["desc"];
                                $repo_base = gwvpmini_getConfigVal("repodir");\r
                                $cmd = "git --git-dir=\"$repo_base/$name.git\" log --all -1 2> /dev/null";
-                               error_log("CMD: $cmd");
+                               // error_log("CMD: $cmd");
                                //system("$cmd");
                                $fls = popen($cmd, "r");
                                $tks = "";
@@ -152,7 +152,7 @@ function gwvpmini_GitLogProvider()
                                echo "<td>";
                                $repo_base = gwvpmini_getConfigVal("repodir");
                                $cmd = "git --git-dir=\"$repo_base/$name.git\" log --all -1 2> /dev/null";
-                               error_log("CMD: $cmd");
+                               // error_log("CMD: $cmd");
                                //system("$cmd");
                                $fls = popen($cmd, "r");
                                $tks = "";
@@ -186,6 +186,7 @@ function gwvpmini_GitCreateRepoForm()
        echo "<option value=\"perms-registered\">Must be Registered To Read</option>";
        echo "<option value=\"perms-onlywrite\">Only Writers can Read</option>";
        echo "</select>";
+       echo "<tr><th>Clone From</th><td><input type=\"text\" name=\"clonefrom\"></td></tr>";
        echo "</td></tr>";
        echo "<tr><td colspan=\"2\"><input type=\"submit\" name=\"Create\" value=\"Create\"></td></tr>";
        echo "</table>";
@@ -211,6 +212,13 @@ function gwvpmini_RepoCreate()
                $inputcheckerror = "Repo name contains invalid characters, repos can only contain a-z, A-Z, 0-9, _, - and .";
        }
        
+       $clonefrom = false;
+       if(isset($_REQUEST["clonefrom"])) {
+               if($_REQUEST["clonefrom"] != "") {
+                       $clonefrom = $_REQUEST["clonefrom"];
+               }
+       }
+       
        if(!$inputcheck) {
                gwvpmini_SendMessage("error", "$inputcheckerror");\r
                header("Location: $BASE_URL/repos");
@@ -220,7 +228,7 @@ function gwvpmini_RepoCreate()
                        gwvpmini_SendMessage("error", "Repo ".$_REQUEST["reponame"]." already exists");\r
                        header("Location: $BASE_URL/repos");
                } else {
-                       gwvpmini_createGitRepo($_REQUEST["reponame"], $_SESSION["id"], $_REQUEST["repodesc"], $_REQUEST["perms"]);
+                       gwvpmini_createGitRepo($_REQUEST["reponame"], $_SESSION["id"], $_REQUEST["repodesc"], $_REQUEST["perms"], $clonefrom);
                        gwvpmini_SendMessage("info", "Repo ".$_REQUEST["reponame"]." has been created");
                        header("Location: $BASE_URL/repos");
                }
@@ -246,7 +254,7 @@ function gwvpmini_RemoveRepo($rid)
        
        $rname = $repdet["name"];
        
-       error_log("FROM PANTS:".print_r($repdet,true)." ----------- ".print_r($rname, true));
+       // error_log("FROM PANTS:".print_r($repdet,true)." ----------- ".print_r($rname, true));
        
        if($repdet != false && $rname != "") {
                if(file_exists("$repo_base/$rname.git")) {
@@ -260,7 +268,7 @@ function gwvpmini_RemoveRepo($rid)
 
 function gwvpmini_RecursiveDelete($fpath)
 {
-       error_log("RECURSEDETELE: ".$fpath);
+       // error_log("RECURSEDETELE: ".$fpath);
        if(is_file($fpath)){\r
                return @unlink($fpath);\r
        }\r
@@ -272,5 +280,12 @@ function gwvpmini_RecursiveDelete($fpath)
                return @rmdir($fpath);\r
        }
 }
+
+function gwvpmini_CompressCommitId($cid)
+{
+       $compressedcid = substr($cid, 0, 5)."...".substr($cid, strlen($cid)-5, strlen($cid));
+       
+       return $compressedcid;
+}
        
 ?>
\ No newline at end of file