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