<?php
error_reporting(E_ALL | E_STRICT);
ini_set("track_errors", "On");
$INC = dirname(__FILE__) . "/../inc";
require_once(dirname(__FILE__) . "/config.php");
require_once($INC . "/init.inc.php");
require_once($INC . "/git.inc.php");
rg_log_set_file("git.log");
$rg_no_db = TRUE;
require_once("common.php");
rg_log('');
rg_log("Testing rg_git_log with a rename");
system("git init git_rename; cd git_rename;"
. " touch a; git add a; git commit -a -m \"aaa\";"
. " git mv a b; git commit -a -m \"bbb\"");
$r = rg_git_log('git_rename/.git', 1, '', '', TRUE);
// we do not test here nothing, we will let err- files "speak"
system("rm -rf git_rename");
rg_log('');
rg_log("Testing rg_git_log for binary files");
system("git init git_bin; cd git_bin;"
. " echo -e \x01\x02 > a; git add a; git commit -a -m \"aaa\";"
. " echo -e \x01\x03 > a; git commit -a -m \"bbb\"");
$r = rg_git_log('git_bin/.git', 0, '', '', FALSE);
if ($r[0]['vars']['lines_add'] != 1) {
rg_log_ml(print_r($r[0], TRUE));
rg_log('git_bin: lines_add is incorrect');
exit(1);
}
if ($r[0]['vars']['lines_del'] != 1) {
rg_log_ml(print_r($r[0], TRUE));
rg_log('git_bin: lines_del is incorrect');
exit(1);
}
system("rm -rf git_bin");
rg_log('');
rg_log("Testing git_reference...");
$s = "refs";
$e = $s;
$r = rg_git_reference($s);
if (strcmp($r, $e) != 0) {
rg_log("git_reference($s) is not working");
exit(1);
}
$s = "refs/heads/x";
$e = $s;
$r = rg_git_reference($s);
if (strcmp($r, $e) != 0) {
rg_log("git_reference($s) is not working");
exit(1);
}
rg_log("[*] Checking if git-init works...");
$r = rg_git_init("git.tmp");
if ($r !== TRUE) {
rg_log("Cannot run rg_git_init (" . rg_git_error() . ")!");
exit(1);
}
/*
rg_log("[*] Populate repo...");
file_put_contents("git.tmp/a", "aaa");
system("cd git.tmp; git commit -a -m \"aa\"; git checkout -n b1");
// This is a bare repo! Could not work!
*/
rg_log("[*] Testing rg_git_refs...");
$refs = rg_git_refs("git.tmp");
print_r($refs);
system("rm -rf git.tmp");
rg_log("OK");
?>
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/rocketgit
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/rocketgit
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master