* #repo/hooks/post-receive
* /usr/bin/php {PATH TO APPLICATION}/index.php Hook/git post >> /tmp/githooklog
*
+ *
+ *
+ *
+ * to run this on old commits:
+ *
+
+ git rev-list --since="last month" --pretty=format:"%H %P" refs/heads/master \
+ | grep -v commit \
+ | awk -v q='"' '{ print "echo " q $NF " " $1 " refs/heads/master" q " | /usr/bin/php /home/gitlive/web.mtrack/roo.php Hook/git post " } ' \
+ | sh
+
+
*
*
*/
class MTrackWeb_Hook_git extends MTrackWeb
{
+
+ static $cli_desc = "Commit hook for git - see source for usage";
+ var $authUser;
+
function getAuth()
{
if (!HTML_FlexyFramework::get()->cli) {
}
}
+
+
+
- function get($action)
+ function get($action='')
{
try {
$repo = DB_DataObject::factory('mtrack_repos');
$who = $revs[0]->changebyToEmail();
- $this->authUser = DB_DataObject::factory('Person');
+ $this->authUser = DB_DataObject::factory('core_person');
$this->authUser->get('email', $who);
$cfg = HTML_FlexyFramework::get()->MTrackWeb;
'authUser' => $this->authUser,
));
-
switch ($action) {
case 'pre':
$checker->postCommit($bridge);
// at this point we have
- // checker->no_ticket (contains commits without tickets)
+ // checker->no_ticket (contains commits without tickets
+ // print_r($checker);exit;
+
+ //DB_DataObject::DebugLevel(1);
foreach($checker->no_ticket as $change_event) {
$cg = DB_DataObject::factory('mtrack_change');
- $cg->createFromCommit($change_event);
-
+ $res= $cg->createFromCommit($change_event, $checker);
+ if (!$res) {
+ echo "Skip - commit already exists\n";
+ }
}
- print_r($checker);
+ // in our system this happens when we merge normally.
+ foreach($checker->deferred as $ticket=> $info) {
+ foreach($info['changes'] as $ev) {
+ $cg = DB_DataObject::factory('mtrack_change');
+ $res= $cg->createFromCommit($ev, $checker, $info['ticket']);
+ if (!$res) {
+ echo "Skip - commit already exists\n";
+ }
+
+ }
+
+
+ }
+ //print_r($checker);
}
//_log("SUCCESS");