/hooks/update (51c79a9831987c23d90d54ae6ab2ba8ec9d60d2f) (2350 bytes) (mode 100755) (type blob)
#!/usr/bin/php
<?php
//
// This is called by 'update' hook
// Inspired by update.sample in git package
// It is executed before each ref is updated.
//
// TODO: what do we receive when a tag will be created?
//
error_reporting(E_ALL);
ini_set("track_errors", "On");
$_start = microtime(TRUE);
$conf = getenv("ROCKETGIT_CONF_FILE");
if (empty($conf))
$conf = "/etc/rocketgit/config.php";
require_once($conf);
$INC = $rg_scripts . "/inc";
require_once($INC . "/init.inc.php");
require_once($INC . "/util.inc.php");
require_once($INC . "/log.inc.php");
require_once($INC . "/sql.inc.php");
require_once($INC . "/repo.inc.php");
require_once($INC . "/prof.inc.php");
require_once($INC . "/mr.inc.php");
rg_prof_start("hook-update");
rg_log_set_file($rg_log_dir . "/hook_update.log");
rg_sql_app("rg-hook-update");
$db = rg_sql_open($rg_sql);
$a = array();
$a['login_uid'] = sprintf("%u", getenv("ROCKETGIT_LOGIN_UID"));
$a['repo_id'] = sprintf("%u", getenv("ROCKETGIT_REPO_ID"));
$a['ip'] = getenv("ROCKETGIT_IP");
$a['namespace'] = getenv("GIT_NAMESPACE");
$a['repo_path'] = getenv("ROCKETGIT_REPO_PATH");
$a['repo::uid'] = sprintf("%u", getenv("ROCKETGIT_REPO_UID"));
rg_log("Start " . rg_array2string($a));
rg_log("_SERVER: " . rg_array2string($_SERVER));
umask(0022);
$a['refname'] = rg_git_reference($_SERVER['argv'][1]);
$a['old_rev'] = rg_git_rev(@$_SERVER['argv'][2]);
$a['new_rev'] = rg_git_rev(@$_SERVER['argv'][3]);
rg_log("refname=" . $a['refname'] . " old_rev=" . $a['old_rev']
. " new_rev=" . $a['new_rev']);
if (empty($a['refname']) || empty($a['old_rev']) || empty($a['new_rev']))
rg_git_fatal("Invalid parameters: ref=[" . $a['refname']
. "] old=[" . $a['old_rev'] . "] new=[" . $a['new_rev'] . "]!");
if (strcmp($a['new_rev'], $rg_git_zero) == 0)
$a['new_rev_type'] = rg_git_type($a['old_rev']);
else
$a['new_rev_type'] = rg_git_type($a['new_rev']);
rg_log("new_rev_type=" . $a['new_rev_type']);
if (strncmp($a['refname'], "refs/tags/", 10) == 0) {
rg_git_update_tag($db, $a);
} else if (strncmp($a['refname'], "refs/heads/", 11) == 0) {
rg_git_update_branch($db, $a);
} else if (strncmp($a['refname'], "refs/remotes/", 13) == 0) {
rg_git_fatal("No action for remotes for now!");
} else {
rg_git_fatal("Unknown refname type provided [" . $a['refname'] . "]");
}
rg_prof_end("hook-update");
rg_prof_log();
?>
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
9 |
f3c7a7c5da68804a1bdf391127ba34aed33c3cca |
.exclude |
100644 |
blob |
96 |
5ca30a3adc6cef38f30cbc1e111154c2b5154229 |
.gitignore |
100644 |
blob |
179 |
df01c6306393e7a8b180470b4beb8831e6c421e0 |
AUTHORS |
100644 |
blob |
1131 |
c4293c8abbcc8446af598c33486e1ec4561388d4 |
Certs.txt |
100644 |
blob |
682 |
829015f1d88a8fc2e6da1e6ce4c79a7c3abeef8c |
Compare.txt |
100644 |
blob |
201 |
8dd879f847aaf2e4e63752cd05037ae879a9c17b |
History.txt |
100644 |
blob |
35147 |
94a9ed024d3859793618152ea559a168bbcbb5e2 |
LICENSE |
100644 |
blob |
2150 |
56d42993364a23fbbfb3caac649cb2883d9259af |
Makefile.in |
100644 |
blob |
3442 |
396618e3cd6577a51a514e7f1692cb92a47bfbfb |
README |
100644 |
blob |
51193 |
187ac6d8195538f7ec28dde0ff8bcdf57527d4a6 |
TODO |
100644 |
blob |
1294 |
f22911eb777f0695fcf81ad686eac133eb11fcc4 |
TODO-plans |
040000 |
tree |
- |
f2f566edc152d9ce1548c18d6b81e3bc32a47714 |
admin |
040000 |
tree |
- |
76a16691bc48bbe42bdc63a6d1244d2d49e4da2d |
artwork |
100755 |
blob |
30 |
92c4bc48245c00408cd7e1fd89bc1a03058f4ce4 |
configure |
040000 |
tree |
- |
f67d3605efbd6422a8acdd953578991139266391 |
docs |
100755 |
blob |
13704 |
87c4881d7f32f8179d29d86ee17ddbe0f6254c57 |
duilder |
100644 |
blob |
291 |
27c90d64c197fb0a4451b6398a24bbcacbee02ab |
duilder.conf |
040000 |
tree |
- |
d7ba62d78c4c4aa191a64ab04e9a28ce2685a893 |
hooks |
040000 |
tree |
- |
3f671b7b3ff4210aac0f514c9f72bde522e11f2b |
inc |
100644 |
blob |
3460 |
05bc4d22e0db225b7c30b1b44ec4065add612b8b |
rocketgit.spec.in |
040000 |
tree |
- |
e2e11018b32f119c65f70785640af092d83b4009 |
root |
040000 |
tree |
- |
6e1b4b4a33bec35c47d6465b6fb0332fbf03701e |
samples |
040000 |
tree |
- |
faf5f7d7bed959c0f40153e50de2ed3da70d541f |
scripts |
040000 |
tree |
- |
d01f9931180da51ccf73748fad68839c17d3c15a |
selinux |
040000 |
tree |
- |
efb32e32cfa5a2ab9dc2fdafa43ff1e672979d38 |
tests |
Hints:
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://rocketgit.com/user/catalinux/rocketgit
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/catalinux/rocketgit
Clone this repository using git:
git clone git://git.rocketgit.com/user/catalinux/rocketgit
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main