Collection of themes/skins for the Fossil SCM

⌈⌋ ⎇ branch:  Fossil Skins Extra


Artifact [45178b8766]

Artifact 45178b87668a2e2ba9f9cd7d2c15084daeb03557:

  • Executable file extroot/changelog — part of check-in [69feea6f3b] at 2021-10-11 21:44:47 on branch trunk — NEWS-file generation (user: mario size: 1505)

#!/usr/bin/php-cgi -dcgi.force_redirect=0
<?php
# encoding: utf-8
# api: cgi
# type: output
# category: vcs
# title: changelog
# description: Outputs a NEWS-style timeline
# version: 0.2
# state: beta
# depends: php:sqlite
# config: -
#
# A variant of the hooks.th1 version, in PHP.
#



#-- database (== fossil repo)
function db($sql="", $params=[]) {
    static $db;
    if (empty($db)) {
        $db = new PDO("sqlite::memory:");
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
        $db->query("ATTACH DATABASE '$_SERVER[FOSSIL_REPOSITORY]' AS 'repo'");
    }
    if ($params) {
        $stmt = $db->prepare($sql);
        $stmt->execute($params);
        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
    else {
        return $db->query($sql);
    }
}


#-- output
header("Content-Type: text/plain");
$version="trunk";
print "$version (unreleased)\n";
$r = db("
     SELECT event.mtime, tag.tagname, MAX(tag.tagid), DATE(event.mtime) AS d,
            event.comment AS comment
     FROM event
      LEFT JOIN tagxref ON event.objid=tagxref.rid
      LEFT JOIN tag ON tagxref.tagid=tag.tagid
     WHERE type='ci'
     GROUP BY objid
     ORDER BY event.mtime DESC
     LIMIT 750
");
foreach ($r as $row) {
    if (preg_match('/^sym-.*?(\d+\.\d+.*)$/', $row["tagname"]. $uu)) {
        $version = substr($uu[1], 3, 100);
        print "\n$version ($r[d])\n";
     }
     $comment = trim(preg_replace("/\s+/", " ", $row["comment"]));
     print " * $comment\n";
}
print "\n\n";