Revision: 29319
Updated Code
at July 28, 2010 01:45 by jaspertandy
Updated Code
#!/usr/bin/env php
/**
CREATE TABLE `log` (
`id` int(10) unsigned NOT NULL auto_increment,
`repo` varchar(255) NOT NULL,
`commit` varchar(40) NOT NULL,
`date` datetime NOT NULL,
`message` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `commit` (`commit`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
*/
<?php
date_default_timezone_set('Europe/London');
exec('pwd',$pwd);
$repo = rtrim(array_shift($pwd),'/');
$repo = substr($repo,strrpos($repo,'/') + 1);
$db = new PDO('mysql:dbname=DB;host=127.0.0.1','USERNAME','PASSWORD');
exec('git log --all --pretty=format:"%H%n%ct%n%s%n%b%n<><><>"',$capture,$log);
if ($capture){
// preprocess the log
$commits = array();
$current = array();
foreach ($capture as $row){
if (trim($row) === '<><><>') {
$commits[] = $current;
$current = array();
} else {
$current[] = $row;
}
}
$v = array();
$b = array();
foreach ($commits as $commit){
$sha = $commit[0];
$m = $commit[2] . (trim($commit[3]) === '' ? '' : "\n\n" . implode("\n",array_slice($commit,3)));
$d = date('Y-m-d H:i:s',$commit[1]);
$v[] = '(?,?,?,?)';
$b[] = $repo;
$b[] = $sha;
$b[] = $m;
$b[] = $d;
}
$stmt = $db->prepare('insert ignore into log (repo,commit,message,`date`) values' . implode(',',$v));
try {
if ($stmt) {
if (!$stmt->execute($b)) throw new PDOException;;
} else Throw new PDOException;
} catch (PDOException $e) {
mail('EMAIL','Commit did not reach db',$e->getMessage());
}
}
?>
Revision: 29318
Updated Code
at July 27, 2010 02:13 by jaspertandy
Updated Code
#!/usr/bin/env php
/**
CREATE TABLE `log` (
`id` int(10) unsigned NOT NULL auto_increment,
`repo` varchar(255) NOT NULL,
`commit` varchar(40) NOT NULL,
`date` datetime NOT NULL,
`message` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `commit` (`commit`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
*/
<?php
date_default_timezone_set('Europe/London');
exec('pwd',$pwd);
$repo = rtrim(array_shift($pwd),'/');
$repo = substr($repo,strrpos($repo,'/') + 1);
$db = new PDO('mysql:dbname=DB;host=127.0.0.1','USERNAME','PASSWORD');
exec('git log --pretty=format:"%H%n%ct%n%s%n%b%n<><><>"',$capture,$log);
if ($capture){
// preprocess the log
$commits = array();
$current = array();
foreach ($capture as $row){
if (trim($row) === '<><><>') {
$commits[] = $current;
$current = array();
} else {
$current[] = $row;
}
}
$v = array();
$b = array();
foreach ($commits as $commit){
$sha = $commit[0];
$m = $commit[2] . (trim($commit[3]) === '' ? '' : "\n\n" . implode("\n",array_slice($commit,3)));
$d = date('Y-m-d H:i:s',$commit[1]);
$v[] = '(?,?,?,?)';
$b[] = $repo;
$b[] = $sha;
$b[] = $m;
$b[] = $d;
}
$stmt = $db->prepare('insert ignore into log (repo,commit,message,`date`) values' . implode(',',$v));
try {
if ($stmt) {
if (!$stmt->execute($b)) throw new PDOException;;
} else Throw new PDOException;
} catch (PDOException $e) {
mail('EMAIL','Commit did not reach db',$e->getMessage());
}
}
?>
Revision: 29317
Updated Code
at July 27, 2010 02:11 by jaspertandy
Updated Code
#!/usr/bin/env php
/**
CREATE TABLE `log` (
`id` int(10) unsigned NOT NULL auto_increment,
`repo` varchar(255) NOT NULL,
`commit` varchar(40) NOT NULL,
`date` datetime NOT NULL,
`message` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `commit` (`commit`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
*/
<?php
date_default_timezone_set('Europe/London');
exec('pwd',$pwd);
$repo = rtrim(array_shift($pwd),'/');
$repo = substr($repo,strrpos($repo,'/') + 1);
$db = new PDO('mysql:dbname=git_logs;host=127.0.0.1','root','gu293fujn549JN4J9k');
exec('git log --pretty=format:"%H%n%ct%n%s%n%b%n<><><>"',$capture,$log);
if ($capture){
// preprocess the log
$commits = array();
$current = array();
foreach ($capture as $row){
if (trim($row) === '<><><>') {
$commits[] = $current;
$current = array();
} else {
$current[] = $row;
}
}
$v = array();
$b = array();
foreach ($commits as $commit){
$sha = $commit[0];
$m = $commit[2] . (trim($commit[3]) === '' ? '' : "\n\n" . implode("\n",array_slice($commit,3)));
$d = date('Y-m-d H:i:s',$commit[1]);
$v[] = '(?,?,?,?)';
$b[] = $repo;
$b[] = $sha;
$b[] = $m;
$b[] = $d;
}
$stmt = $db->prepare('insert ignore into log (repo,commit,message,`date`) values' . implode(',',$v));
try {
if ($stmt) {
if (!$stmt->execute($b)) throw new PDOException;;
} else Throw new PDOException;
} catch (PDOException $e) {
mail('[email protected]','Commit did not reach db',$e->getMessage());
}
}
?>
Revision: 29316
Updated Code
at July 27, 2010 02:10 by jaspertandy
Updated Code
/**
CREATE TABLE `log` (
`id` int(10) unsigned NOT NULL auto_increment,
`repo` varchar(255) NOT NULL,
`commit` varchar(40) NOT NULL,
`date` datetime NOT NULL,
`message` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `commit` (`commit`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
*/
#!/usr/bin/env php
<?php
date_default_timezone_set('Europe/London');
exec('pwd',$pwd);
$repo = rtrim(array_shift($pwd),'/');
$repo = substr($repo,strrpos($repo,'/') + 1);
$db = new PDO('mysql:dbname=git_logs;host=127.0.0.1','root','gu293fujn549JN4J9k');
exec('git log --pretty=format:"%H%n%ct%n%s%n%b%n<><><>"',$capture,$log);
if ($capture){
// preprocess the log
$commits = array();
$current = array();
foreach ($capture as $row){
if (trim($row) === '<><><>') {
$commits[] = $current;
$current = array();
} else {
$current[] = $row;
}
}
$v = array();
$b = array();
foreach ($commits as $commit){
$sha = $commit[0];
$m = $commit[2] . (trim($commit[3]) === '' ? '' : "\n\n" . implode("\n",array_slice($commit,3)));
$d = date('Y-m-d H:i:s',$commit[1]);
$v[] = '(?,?,?,?)';
$b[] = $repo;
$b[] = $sha;
$b[] = $m;
$b[] = $d;
}
$stmt = $db->prepare('insert ignore into log (repo,commit,message,`date`) values' . implode(',',$v));
try {
if ($stmt) {
if (!$stmt->execute($b)) throw new PDOException;;
} else Throw new PDOException;
} catch (PDOException $e) {
mail('[email protected]','Commit did not reach db',$e->getMessage());
}
}
?>
Revision: 29315
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 27, 2010 02:05 by jaspertandy
Initial Code
#!/usr/bin/env php
<?php
date_default_timezone_set('Europe/London');
exec('pwd',$pwd);
$repo = rtrim(array_shift($pwd),'/');
$repo = substr($repo,strrpos($repo,'/') + 1);
$db = new PDO('mysql:dbname=git_logs;host=127.0.0.1','root','gu293fujn549JN4J9k');
exec('git log --pretty=format:"%H%n%ct%n%s%n%b%n<><><>"',$capture,$log);
if ($capture){
// preprocess the log
$commits = array();
$current = array();
foreach ($capture as $row){
if (trim($row) === '<><><>') {
$commits[] = $current;
$current = array();
} else {
$current[] = $row;
}
}
$v = array();
$b = array();
foreach ($commits as $commit){
$sha = $commit[0];
$m = $commit[2] . (trim($commit[3]) === '' ? '' : "\n\n" . implode("\n",array_slice($commit,3)));
$d = date('Y-m-d H:i:s',$commit[1]);
$v[] = '(?,?,?,?)';
$b[] = $repo;
$b[] = $sha;
$b[] = $m;
$b[] = $d;
}
$stmt = $db->prepare('insert ignore into log (repo,commit,message,`date`) values' . implode(',',$v));
try {
if ($stmt) {
if (!$stmt->execute($b)) throw new PDOException;;
} else Throw new PDOException;
} catch (PDOException $e) {
mail('[email protected]','Commit did not reach db',$e->getMessage());
}
}
?>
Initial URL
http://jspr.tndy.me/2010/07/store-git-activity-in-mysql-with-php/
Initial Description
Initial Title
Push your git logs to MySQL with PHP
Initial Tags
mysql, php, git
Initial Language
PHP