Changeset 137


Ignore:
Timestamp:
Jun 3, 2006 8:15:06 PM (18 years ago)
Author:
scdev
Message:

Q - Renamed SessionCache? to Cache, RecordVersion? to Version, and RecordLock? to Lock

Location:
trunk
Files:
8 edited
6 moved

Legend:

Unmodified
Added
Removed
  • trunk/bin/module_maker/skel/admin.php

    r136 r137  
    1919require_once 'codebase/lib/TemplateGlue.inc.php';
    2020require_once 'codebase/lib/Prefs.inc.php';
    21 require_once 'codebase/lib/RecordLock.inc.php';
    22 require_once 'codebase/lib/RecordVersion.inc.php';
     21require_once 'codebase/lib/Lock.inc.php';
     22require_once 'codebase/lib/Version.inc.php';
    2323%ADMIN_UPLOAD_INCLUDE%
    2424
     
    294294
    295295    // Create version.
    296     $version = RecordVersion::getInstance($GLOBALS['auth']);
     296    $version = Version::getInstance($GLOBALS['auth']);
    297297    $version->create('%DB_TBL%', '%PRIMARY_KEY%', $last_insert_id, $frm['<##>']);
    298298
     
    319319
    320320    // Create version.
    321     $version = RecordVersion::getInstance($GLOBALS['auth']);
     321    $version = Version::getInstance($GLOBALS['auth']);
    322322    $version->create('%DB_TBL%', '%PRIMARY_KEY%', $frm['%PRIMARY_KEY%'], $frm['<##>']);
    323323
  • trunk/docs/file_layout.txt

    r136 r137  
    5252        PEdit.inc.php (page-by-page file-based content management system)
    5353        Prefs.inc.php (class for semi-permenent storage of values)
    54         RecordLock.inc.php (db record locking system)
    55         RecordVersion.inc.php (db record versioning system)
     54        Lock.inc.php (db record locking system)
     55        Version.inc.php (db record versioning system)
    5656        ScriptTimer.inc.php (timer for scripts)
    5757        Cache.inc.php (class for accessing a cache in a users session, stores any variables for quick retreival)
  • trunk/docs/revision_history.txt

    r136 r137  
    2929    - DB
    3030    - DBSessionHandler
    31     - RecordLock
    32     - RecordVersion
     31    - Lock
     32    - Version
    3333    - Cache
    3434    - Upload
     
    7272Full test suite for all codebase libraries. Run from the command line: "codebase/tests/run_tests.sh;"
    7373
    74 Classes that access database tables have a function initDB() that will setup the basic schema necessary to run. This includes Auth_SQL, RecordVersion, RecordLock, and DBSessionHandler.
     74Classes that access database tables have a function initDB() that will setup the basic schema necessary to run. This includes Auth_SQL, Version, Lock, and DBSessionHandler.
    7575
    7676And much much more still to document...
  • trunk/lib/Version.inc.php

    r136 r137  
    11<?php
    22/**
    3  * RecordVersion.inc.php
     3 * Version.inc.php
    44 * code by strangecode :: www.strangecode.com :: this document contains copyrighted information
    55 *
    6  * The RecordVersion class provides a system for saving, reviewing, and
     6 * The Version class provides a system for saving, reviewing, and
    77 * restoring versions of a record of any DB table. All the data in the record is
    88 * serialized, compressed, and saved in a blob in the version_tbl. Restoring a
     
    1717 * @version 2.1
    1818 */
    19 class RecordVersion {
     19class Version {
    2020
    2121    // Configuration of this object.
     
    4444
    4545        if ($instance === null) {
    46             $instance = new RecordVersion($auth_object);
     46            $instance = new Version($auth_object);
    4747        }
    4848
     
    5555     * @param mixed  $auth_object  An Auth_SQL object.
    5656     */
    57     function RecordVersion($auth_object)
     57    function Version($auth_object)
    5858    {
    5959        $app =& App::getInstance();
  • trunk/services/admins.php

    r136 r137  
    1616require_once 'codebase/lib/TemplateGlue.inc.php';
    1717require_once 'codebase/lib/Prefs.inc.php';
    18 require_once 'codebase/lib/RecordLock.inc.php';
    19 require_once 'codebase/lib/RecordVersion.inc.php';
     18require_once 'codebase/lib/Lock.inc.php';
     19require_once 'codebase/lib/Version.inc.php';
    2020
    2121
     
    398398
    399399    // Create version.
    400     $version = RecordVersion::getInstance($GLOBALS['auth']);
     400    $version = Version::getInstance($GLOBALS['auth']);
    401401    $version->create('admin_tbl', 'admin_id', $last_insert_id, $frm['username']);
    402402
     
    441441
    442442    // Create version.
    443     $version = RecordVersion::getInstance($GLOBALS['auth']);
     443    $version = Version::getInstance($GLOBALS['auth']);
    444444    $version->create('admin_tbl', 'admin_id', $frm['admin_id'], $frm['username']);
    445445
  • trunk/services/lock.php

    r136 r137  
    66
    77// require_once dirname(__FILE__) . '/_config.inc.php';
    8 require_once 'codebase/lib/RecordLock.inc.php';
     8require_once 'codebase/lib/Lock.inc.php';
    99
    1010$auth->requireLogin();
     
    2020}
    2121
    22 if (!isset($lock) || !is_a($lock, 'RecordLock')) {
    23     $lock =& RecordLock::getInstance($auth);
     22if (!isset($lock) || !is_a($lock, 'Lock')) {
     23    $lock =& Lock::getInstance($auth);
    2424}
    2525$lock->select(getFormData('lock_id'));
  • trunk/services/logout.php

    r136 r137  
    77if (isset($auth) && method_exists($auth, 'getVal')) {
    88    // Delete the current user's record locks.
    9     require_once 'codebase/lib/RecordLock.inc.php';
    10     $lock =& RecordLock::getInstance($auth);
     9    require_once 'codebase/lib/Lock.inc.php';
     10    $lock =& Lock::getInstance($auth);
    1111    $lock->removeAll($auth->getVal('user_id'));
    1212}
  • trunk/services/templates/lock.ihtml

    r136 r137  
    11<?php
    2 if (!is_a($lock, 'RecordLock')) {
     2if (!is_a($lock, 'Lock')) {
    33    return null;
    44}
  • trunk/services/versions.php

    r136 r137  
    1010$app->sslOn();
    1111
    12 require_once 'codebase/lib/RecordVersion.inc.php';
    13 require_once 'codebase/lib/RecordLock.inc.php';
     12require_once 'codebase/lib/Version.inc.php';
     13require_once 'codebase/lib/Lock.inc.php';
    1414
    1515/******************************************************************************
     
    1717 *****************************************************************************/
    1818
    19 $version = RecordVersion::getInstance($GLOBALS['auth']);
     19$version = Version::getInstance($GLOBALS['auth']);
    2020
    2121// Query arguments to retain their values between page requests.
     
    7575
    7676case 'restore' :
    77     if (!isset($lock) || !is_a($lock, 'RecordLock')) {
    78         $lock =& RecordLock::getInstance($auth);
     77    if (!isset($lock) || !is_a($lock, 'Lock')) {
     78        $lock =& Lock::getInstance($auth);
    7979    }
    8080    $lock->select($record_table, $record_key, $record_val);
  • trunk/tests/LockTest.php

    r136 r137  
    11<?php
    22/**
    3  * PHPUnit test case for RecordLock
     3 * PHPUnit test case for Lock
    44 *
    55 * The method skeletons below need to be filled in with
     
    1010 */
    1111require_once 'PHPUnit.php';
    12 class RecordLockTest extends PHPUnit_TestCase {
     12class LockTest extends PHPUnit_TestCase {
    1313
    14     var $RecordLock;
     14    var $Lock;
    1515    var $Auth_SQL;
    1616
    17     function RecordLockTest($name)
     17    function LockTest($name)
    1818    {
    1919        $this->PHPUnit_TestCase($name);
     
    2323    {   
    2424        require dirname(__FILE__) . '/_config.inc.php';
    25         require_once '../lib/RecordLock.inc.php';
     25        require_once '../lib/Lock.inc.php';
    2626        require_once '../lib/Auth_SQL.inc.php';
    2727
     
    6363        }
    6464
    65         $this->RecordLock =& RecordLock::getInstance($this->Auth_SQL);
    66         $this->RecordLock->setParam(array('db_table' => 'test_lock_tbl'));
     65        $this->Lock =& Lock::getInstance($this->Auth_SQL);
     66        $this->Lock->setParam(array('db_table' => 'test_lock_tbl'));
    6767
    6868        // Use fresh lock table.
    69         $this->RecordLock->initDB(true);
     69        $this->Lock->initDB(true);
    7070    }
    7171
     
    7474        $db =& DB::getInstance();
    7575   
    76         unset($this->RecordLock);
     76        unset($this->Lock);
    7777        unset($this->Auth_SQL);
    7878        $db->query("DROP TABLE IF EXISTS test_user_tbl");
     
    8383    function test_getinstance()
    8484    {
    85         $result = RecordLock::getinstance($this->Auth_SQL);
    86         $this->assertTrue($result && is_a($result, 'RecordLock'));
     85        $result = Lock::getinstance($this->Auth_SQL);
     86        $this->assertTrue($result && is_a($result, 'Lock'));
    8787    }
    8888
    8989    function test_setparam()
    9090    {
    91         $this->RecordLock->setparam(array('var'=>'val'));
     91        $this->Lock->setparam(array('var'=>'val'));
    9292    }
    9393
    9494    function test_getparam()
    9595    {
    96         $this->RecordLock->getparam('var');
     96        $this->Lock->getparam('var');
    9797    }
    9898
    9999    function test_select()
    100100    {
    101         $this->RecordLock->set('test_user_tbl', 'user_id', '1');
    102         $result = $this->RecordLock->select('test_user_tbl', 'user_id', '1');
     101        $this->Lock->set('test_user_tbl', 'user_id', '1');
     102        $result = $this->Lock->select('test_user_tbl', 'user_id', '1');
    103103        $this->assertTrue($result);
    104104    }
     
    106106    function test_islocked()
    107107    {
    108         $this->RecordLock->select('test_user_tbl', 'user_id', '1');
     108        $this->Lock->select('test_user_tbl', 'user_id', '1');
    109109
    110         $this->RecordLock->set('test_user_tbl', 'user_id', '1');
    111         $result = $this->RecordLock->islocked();
     110        $this->Lock->set('test_user_tbl', 'user_id', '1');
     111        $result = $this->Lock->islocked();
    112112        $this->assertTrue($result, 'Lock was not set.');
    113113
    114         $this->RecordLock->remove();
    115         $this->RecordLock->select('test_user_tbl', 'user_id', '1');
    116         $result = $this->RecordLock->islocked();
     114        $this->Lock->remove();
     115        $this->Lock->select('test_user_tbl', 'user_id', '1');
     116        $result = $this->Lock->islocked();
    117117        $this->assertFalse($result, 'Lock was not removed.');
    118118    }
     
    120120    function test_ismine()
    121121    {
    122         $this->RecordLock->set('test_user_tbl', 'user_id', '1');
    123         $this->RecordLock->select('test_user_tbl', 'user_id', '1');
    124         $result = $this->RecordLock->ismine();
     122        $this->Lock->set('test_user_tbl', 'user_id', '1');
     123        $this->Lock->select('test_user_tbl', 'user_id', '1');
     124        $result = $this->Lock->ismine();
    125125        $this->assertTrue($result);
    126126    }
     
    128128    function test_set()
    129129    {
    130         $this->RecordLock->select('test_user_tbl', 'user_id', '1');
    131         $this->RecordLock->remove();
    132         $this->RecordLock->set('test_user_tbl', 'user_id', '1');
    133         $this->RecordLock->select('test_user_tbl', 'user_id', '1');
    134         $result = $this->RecordLock->islocked();
     130        $this->Lock->select('test_user_tbl', 'user_id', '1');
     131        $this->Lock->remove();
     132        $this->Lock->set('test_user_tbl', 'user_id', '1');
     133        $this->Lock->select('test_user_tbl', 'user_id', '1');
     134        $result = $this->Lock->islocked();
    135135        $this->assertTrue($result);
    136136    }
     
    138138    function test_remove()
    139139    {
    140         $this->RecordLock->select('test_user_tbl', 'user_id', '1');
    141         $this->RecordLock->set('test_user_tbl', 'user_id', '1');
    142         $this->RecordLock->remove();
    143         $this->RecordLock->select('test_user_tbl', 'user_id', '1');
    144         $result = $this->RecordLock->islocked();
     140        $this->Lock->select('test_user_tbl', 'user_id', '1');
     141        $this->Lock->set('test_user_tbl', 'user_id', '1');
     142        $this->Lock->remove();
     143        $this->Lock->select('test_user_tbl', 'user_id', '1');
     144        $result = $this->Lock->islocked();
    145145        $this->assertFalse($result);
    146146    }
     
    148148    function test_removeall()
    149149    {
    150         $this->RecordLock->select('test_user_tbl', 'user_id', '1');
    151         $this->RecordLock->set('test_user_tbl', 'user_id', '1');
    152         $this->RecordLock->removeall();
    153         $this->RecordLock->select('test_user_tbl', 'user_id', '1');
    154         $result = $this->RecordLock->islocked();
     150        $this->Lock->select('test_user_tbl', 'user_id', '1');
     151        $this->Lock->set('test_user_tbl', 'user_id', '1');
     152        $this->Lock->removeall();
     153        $this->Lock->select('test_user_tbl', 'user_id', '1');
     154        $result = $this->Lock->islocked();
    155155        $this->assertFalse($result);
    156156    }
     
    158158    function test__auto_timeout()
    159159    {
    160         $this->RecordLock->_auto_timeout();
     160        $this->Lock->_auto_timeout();
    161161    }
    162162
    163163    function test_getid()
    164164    {
    165         $this->RecordLock->select('test_user_tbl', 'user_id', '1');
    166         $this->RecordLock->set('test_user_tbl', 'user_id', '1');
    167         $result = $this->RecordLock->getid();
     165        $this->Lock->select('test_user_tbl', 'user_id', '1');
     166        $this->Lock->set('test_user_tbl', 'user_id', '1');
     167        $result = $this->Lock->getid();
    168168        $this->assertTrue('' != $result);
    169169        $this->assertTrue(is_numeric($result));
     
    172172    function test_gettitle()
    173173    {
    174         $this->RecordLock->select('test_user_tbl', 'user_id', '1');
    175         $this->RecordLock->set('test_user_tbl', 'user_id', '1', 'userlock');
    176         $result = $this->RecordLock->gettitle();
     174        $this->Lock->select('test_user_tbl', 'user_id', '1');
     175        $this->Lock->set('test_user_tbl', 'user_id', '1', 'userlock');
     176        $result = $this->Lock->gettitle();
    177177        $this->assertEquals('userlock', $result);
    178178    }
     
    180180    function test_geteditor()
    181181    {
    182         $this->RecordLock->select('test_user_tbl', 'user_id', '1');
    183         $this->RecordLock->set('test_user_tbl', 'user_id', '1', 'userlock');
    184         $result = $this->RecordLock->geteditor();
     182        $this->Lock->select('test_user_tbl', 'user_id', '1');
     183        $this->Lock->set('test_user_tbl', 'user_id', '1', 'userlock');
     184        $result = $this->Lock->geteditor();
    185185        $this->assertEquals('testuser', $result);
    186186    }
     
    188188    function test_getsecondselapsed()
    189189    {
    190         $result = $this->RecordLock->getsecondselapsed();
     190        $result = $this->Lock->getsecondselapsed();
    191191        $this->assertType('integer', $result);
    192192    }
     
    194194}
    195195// Running the test.
    196 $suite = new PHPUnit_TestSuite('RecordLockTest');
     196$suite = new PHPUnit_TestSuite('LockTest');
    197197$result = PHPUnit::run($suite);
    198198echo $result->toString();
  • trunk/tests/VersionTest.php

    r136 r137  
    11<?php
    22/**
    3  * PHPUnit test case for RecordVersion
     3 * PHPUnit test case for Version
    44 *
    55 * The method skeletons below need to be filled in with
     
    1010 */
    1111require_once 'PHPUnit.php';
    12 class RecordVersionTest extends PHPUnit_TestCase {
     12class VersionTest extends PHPUnit_TestCase {
    1313
    14     var $RecordVersion;
     14    var $Version;
    1515    var $Auth_SQL;
    1616
    17     function RecordVersionTest($name)
     17    function VersionTest($name)
    1818    {
    1919        $this->PHPUnit_TestCase($name);
     
    2323    {   
    2424        require dirname(__FILE__) . '/_config.inc.php';
    25         require_once '../lib/RecordVersion.inc.php';
     25        require_once '../lib/Version.inc.php';
    2626
    2727        require_once '../lib/Auth_SQL.inc.php';
     
    6060        $this->Auth_SQL->login('testuser', 'testpass');
    6161
    62         $this->RecordVersion =& RecordVersion::getInstance($this->Auth_SQL);
    63         $this->RecordVersion->setParam(array('db_table' => 'test_version_tbl'));
     62        $this->Version =& Version::getInstance($this->Auth_SQL);
     63        $this->Version->setParam(array('db_table' => 'test_version_tbl'));
    6464
    6565        // Use fresh version table.
    66         $this->RecordVersion->initDB(true);
     66        $this->Version->initDB(true);
    6767    }
    6868
     
    7171        $db =& DB::getInstance();
    7272   
    73         unset($this->RecordVersion);
     73        unset($this->Version);
    7474        unset($this->Auth_SQL);
    7575        $db->query("DROP TABLE IF EXISTS test_user_tbl");
     
    8080    function test_getinstance()
    8181    {
    82         $result = RecordVersion::getinstance($this->Auth_SQL);
    83         $this->assertTrue($result && is_a($result, 'RecordVersion'));
     82        $result = Version::getinstance($this->Auth_SQL);
     83        $this->assertTrue($result && is_a($result, 'Version'));
    8484    }
    8585
    8686    function test_setparam()
    8787    {
    88         $this->RecordVersion->setparam(array('var'=>'val'));
     88        $this->Version->setparam(array('var'=>'val'));
    8989    }
    9090
    9191    function test_getparam()
    9292    {
    93         $this->RecordVersion->getparam('var');
     93        $this->Version->getparam('var');
    9494    }
    9595
    9696    function test_create()
    9797    {
    98         $result = $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user');
     98        $result = $this->Version->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user');
    9999        $this->assertTrue($result);
    100100    }
     
    102102    function test_restore()
    103103    {
    104         $current = $this->RecordVersion->getCurrent('test_user_tbl', 'user_id', '1');
    105         $version_id = $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user');
    106         $versioned = $this->RecordVersion->getData($version_id);
    107         $result = $this->RecordVersion->restore($version_id);
    108         $restored = $this->RecordVersion->getCurrent('test_user_tbl', 'user_id', '1');
     104        $current = $this->Version->getCurrent('test_user_tbl', 'user_id', '1');
     105        $version_id = $this->Version->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user');
     106        $versioned = $this->Version->getData($version_id);
     107        $result = $this->Version->restore($version_id);
     108        $restored = $this->Version->getCurrent('test_user_tbl', 'user_id', '1');
    109109        $this->assertTrue(is_array($result), 'Restore did not return array.');
    110110        $this->assertTrue($current === $versioned && $versioned === $restored, 'Restored version does not match original.');
     
    114114    {
    115115        // Creat 3 test versions.
    116         $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 1', '1 version of user');
    117         $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 2', '2 version of user');
    118         $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 3', '3 version of user');
     116        $this->Version->create('test_user_tbl', 'user_id', '1', 'Test 1', '1 version of user');
     117        $this->Version->create('test_user_tbl', 'user_id', '1', 'Test 2', '2 version of user');
     118        $this->Version->create('test_user_tbl', 'user_id', '1', 'Test 3', '3 version of user');
    119119
    120         $a = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1');
     120        $a = $this->Version->getList('test_user_tbl', 'user_id', '1');
    121121
    122         $this->RecordVersion->deleteold('test_user_tbl', 'user_id', '1');
    123         $b = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1');
     122        $this->Version->deleteold('test_user_tbl', 'user_id', '1');
     123        $b = $this->Version->getList('test_user_tbl', 'user_id', '1');
    124124
    125         $this->RecordVersion->setparam(array('max_qty'=>2));
    126         $this->RecordVersion->setparam(array('min_qty'=>1));
    127         $this->RecordVersion->setparam(array('min_days'=>0));
    128         $this->RecordVersion->deleteold('test_user_tbl', 'user_id', '1');
    129         $c = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1');
     125        $this->Version->setparam(array('max_qty'=>2));
     126        $this->Version->setparam(array('min_qty'=>1));
     127        $this->Version->setparam(array('min_days'=>0));
     128        $this->Version->deleteold('test_user_tbl', 'user_id', '1');
     129        $c = $this->Version->getList('test_user_tbl', 'user_id', '1');
    130130
    131         $this->RecordVersion->setparam(array('max_qty'=>0));
    132         $this->RecordVersion->setparam(array('min_qty'=>0));
    133         $this->RecordVersion->setparam(array('min_days'=>0));
    134         $this->RecordVersion->deleteold('test_user_tbl', 'user_id', '1');
    135         $d = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1');
     131        $this->Version->setparam(array('max_qty'=>0));
     132        $this->Version->setparam(array('min_qty'=>0));
     133        $this->Version->setparam(array('min_days'=>0));
     134        $this->Version->deleteold('test_user_tbl', 'user_id', '1');
     135        $d = $this->Version->getList('test_user_tbl', 'user_id', '1');
    136136
    137137        $this->assertTrue(sizeof($a) == 3, 'A is wrong');
     
    143143    function test_getlist()
    144144    {
    145         $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 1', '1 version of user');
    146         $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 2', '2 version of user');
    147         $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test 3', '3 version of user');
    148         $result = $this->RecordVersion->getList('test_user_tbl', 'user_id', '1');
     145        $this->Version->create('test_user_tbl', 'user_id', '1', 'Test 1', '1 version of user');
     146        $this->Version->create('test_user_tbl', 'user_id', '1', 'Test 2', '2 version of user');
     147        $this->Version->create('test_user_tbl', 'user_id', '1', 'Test 3', '3 version of user');
     148        $result = $this->Version->getList('test_user_tbl', 'user_id', '1');
    149149        $this->assertTrue(is_array($result) && !empty($result));
    150150    }
     
    152152    function test_getverson()
    153153    {
    154         $version_id = $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user');
    155         $result = $this->RecordVersion->getverson($version_id);
     154        $version_id = $this->Version->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user');
     155        $result = $this->Version->getverson($version_id);
    156156        $this->assertTrue(is_array($result) && !empty($result));
    157157    }
     
    159159    function test_getdata()
    160160    {
    161         $version_id = $this->RecordVersion->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user');
    162         $result = $this->RecordVersion->getdata($version_id);
     161        $version_id = $this->Version->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user');
     162        $result = $this->Version->getdata($version_id);
    163163        $this->assertTrue(is_array($result) && !empty($result));
    164164    }
     
    166166    function test_getcurrent()
    167167    {
    168         $result = $this->RecordVersion->getCurrent('test_user_tbl', 'user_id', '1');
     168        $result = $this->Version->getCurrent('test_user_tbl', 'user_id', '1');
    169169        $this->assertTrue(is_array($result) && !empty($result));
    170170    }
     
    172172}
    173173// Running the test.
    174 $suite = new PHPUnit_TestSuite('RecordVersionTest');
     174$suite = new PHPUnit_TestSuite('VersionTest');
    175175$result = PHPUnit::run($suite);
    176176echo $result->toString();
Note: See TracChangeset for help on using the changeset viewer.